【问题标题】:How to profile network utilization of a .NET application如何分析 .NET 应用程序的网络利用率
【发布时间】:2010-12-08 00:36:03
【问题描述】:

我有一个 .NET windows 服务,它具有很多网络魔法(WMI、Ping 等 - 列表很长)。我想尽可能轻松和详细地描述应用程序总共使用了多少带宽以及代码中的每个部分。

有什么工具可以帮助我做到这一点吗?例如,蚂蚁探查器将帮助我进行内存分析和处理器利用率分析。但是,它对网络分析没有太大作用。有没有类似 ANT 的网络分析工具?如果没有,那么在获取这些信息时我有哪些选择?

谢谢

回应一些答案:为澄清而添加

无论是什么工具,如果它不能直接链接到代码(我认为这是不可能的),它需要能够在无人看管的情况下运行数天,以跟踪(记录到文件或数据库)所使用的网络流量通过一个过程。它必须能够直接指定进程(wireshark 做不到)。 Microsoft Network Monitor 可以做到这一点,但是,由于性能问题(运行几个小时后,我已经有 100 万帧要统计),它的功能要多得多(逐帧解析如此之多)。如果我尝试将内容复制到excel或数据库中,仅复制需要30多分钟)。

真的,这似乎是一件很简单的事情,但是,我很难找到一个可以做我想做的事情的工具。

【问题讨论】:

    标签: .net performance networking profiling network-utilization


    【解决方案1】:

    我很喜欢SocketSniff。它附加到单个正在运行的进程,并显示所有与套接字相关的流量。它不像 WireShare 那样具有出色的解码能力,但它也消除了很多噪音。

    【讨论】:

      【解决方案2】:

      您可以尝试MS Visual Roundtrip Analyzer(使用MS Network Monitor),或者只是网络监视器本身。

      【讨论】:

        【解决方案3】:

        您可以使用实用程序Wireshark 来捕获所有从运行服务的机器发出的数据包。然后,您可以根据其中的内容过滤这些数据包,以限制您关心的数据包。使用这些信息,您可以找到您正在寻找的指标。

        【讨论】:

        • 这可能行得通,但一点也不容易。一方面,您似乎无法按流程进行过滤,这对于此类事情来说将是巨大的。其次,它根本不将其链接到代码(就像 ANTs profiler 处理内存和处理器性能一样)。所以是的,这是一个步骤,但我正在寻找更多。
        • 之所以很难,是因为您试图跟踪进程外信息并将其与进程内属性相关联。这些其他工具运行良好的原因是因为它们都与托管的进程内代码有关。如果您使用 WCF,您可能能够更好地跟踪,但您仍在处理 OoP 问题。
        猜你喜欢
        • 1970-01-01
        • 2011-05-02
        • 1970-01-01
        • 1970-01-01
        • 2017-12-28
        • 2018-05-17
        • 1970-01-01
        • 1970-01-01
        • 2021-10-16
        相关资源
        最近更新 更多