基本上,我需要监视客户端的性能和资源利用情况,这是一个基于.NET 2.0的Windows桌面应用程序。
最重要的是,我需要监控客户端使用的网络资源,即从客户端流向服务器的数据大小以及客户端从服务器下载的数据大小。
除此之外,一般的性能监测也会有所帮助。
请指导。
编辑:一些人建议使用perfmon,但是perfmon显示的值不是系统范围内的吗?我需要针对单个应用程序的这些基于网络的统计数据...即单个桌面应用程序发送和接收的字节数。
网络监控的标准工具是Wireshark。 它允许您非常灵活地过滤网络流量。 但对于您的应用程序来说,这可能会过度。 如果您正在使用纯.NET,则建议您在服务器端的网络类中添加性能日志记录-如果您正在使用.NET库类,则继承自己的类,其中添加在发送和接收数据时的统计信息。
第一部分经常被忽视,但非常重要。因为获取新连接通常比数据流量本身更昂贵。
您没有告诉我们您正在使用什么类型的连接(低级tcpip调用、Web服务、WCF或其他),但我的建议是:
如何监控这些值取决于所涉及的技术,对于某些技术来说非常简单(例如,如果您正在使用 Web 服务,则设置 Fiddler 来监视调用并检查监视结果非常简单),而对于其他技术,则需要使用低级流量分析器,如Wireshark 或 MS Network Monitor 并学习如何根据服务器的 IP 地址、使用的端口和其他参数过滤流量。
如果您明确了应用程序架构,我可以尝试更具体地说明。
祝好, Massimo
从您的帖子中并不清楚您是否正在使用HTTP请求。您提到服务器是一个Web应用程序,这使我(也许是错误的)认为您可能正在使用HTTP协议从服务器向客户端发送/接收数据。
如果是这样,一个可能有用的工具是Fiddler。该工具将监视您的工作站中所有的HTTP流量,并且它可以(我相信)观察特定的会话和应用程序。好处在于您可以查看单个请求并查看这些请求的统计信息,包括字节输入/输出、往返时间和其他有用的信息。
如果您不是基于HTTP的,则此工具将无法帮助您。
你想查看perfmon(也称开始菜单中的性能监视器)。
在默认图形视图中打开它,添加一个计数器,选择网络接口,然后选择每秒字节数(或类似的计数器),点击确定即可完成。
你可以尝试其他网络计数器,因为有很多,其中一个会完全符合你的要求。你还可以将perfmon日志保存到文件中,并在之后查看它们 - 你将看到完整的图形,并且可以“放大”某些部分。或者,你可以保存仅包含原始数字的日志样式文件。
这里有一个快速指南,介绍了perfmon作为管理员工具的使用方法,一旦你理解了这个,其他就很容易了。
在Vista中,你不能再添加单独的计数器,而是添加整个对象下分组的所有计数器 - 所以对于我的例子,你需要添加网络接口对象,然后在点击确定后,你将在图表上看到所有单独的计数器。