在 Web 应用程序的压力测试期间记录性能时,我应该在 Windows 性能监视器中使用哪些计数器?

Posted

技术标签:

【中文标题】在 Web 应用程序的压力测试期间记录性能时,我应该在 Windows 性能监视器中使用哪些计数器?【英文标题】:Which counters should I use in Windows Performance Monitor when logging performance during stress testing of a web app? 【发布时间】:2010-11-10 23:42:13 【问题描述】:

我正在设置 Windows 性能监视器以在运行 MS Web 应用程序压力工具时记录 Web 服务器上的活动。我应该选择哪些计数器,以便更好地了解瓶颈、性能和响应速度慢等问题?

干杯

【问题讨论】:

【参考方案1】:

Windows 性能工具 perfmon 可能不会告诉您很多关于您的瓶颈在哪里,但它可以帮助您确定您对系统施加的负载的影响,如果运行时间足够长,很可能告诉你是否有资源泄漏。

我的基线项目: 流程的所有流程项 处理器 记忆

对于采样周期,我倾向于将 100-200 个样本作为预期运行时间的目标。

下一组问题将非常具体地针对您的应用程序,以确定您需要什么: .Net 和 ASP 对象(如果适用) 如果您怀疑网络接口有问题,则为网络对象 如果您怀疑或想要调查磁盘 IO 对不同负载下磁盘活动量的影响。

与收集数据同样重要的是审查的时间。对于第一次查看,值得花一两个小时来调出每个计数器并注意趋势。一旦您对柜台变得更有经验,您就可以专注于特定项目。我倾向于总是检查泄漏的事情: 句柄计数、线程、私有内存、空闲系统页表条目、数据库连接计数(如果可以的话)。

不要忘记查看整个系统,而不仅仅是您的网络服务器。应用程序问题可以出现在任何链接的(直接或间接)资源上。仅仅因为其他事情失败或运行缓慢并不意味着它不是由您的应用程序引起的。

【讨论】:

我要测试的一个方面是编写一个文件 - 服务器上运行的 php 脚本从用户浏览器中运行的 Flash 接收字节数组,并将此数据写入文件。为了监控这个过程,看起来 IO Data Bytes/sec 会是一个很好的计数器吗?还有其他人吗? 我认为对于 PHP 脚本,这可能是最好的选择。您应该真正查看脚本中是否嵌入了性能跟踪代码,并定期将它们转储到日志文件或其他存储库中。您自己的应用程序逻辑通常是获取最有用的性能数据的最佳位置。 您说“我倾向于将 100-200 个样本作为预期运行时间的目标” - 请您进一步解释一下,在这种情况下样本是什么? 使用 perfmon 并收集大量数据点时,文件可能会变大然后滚动。在寻找大多数泄漏问题或获得高级性能特征时,我发现 100-200 个样本可以很好地平衡足够的数据来查看趋势,但不会因为太多而难以使用。

以上是关于在 Web 应用程序的压力测试期间记录性能时,我应该在 Windows 性能监视器中使用哪些计数器?的主要内容,如果未能解决你的问题,请参考以下文章

十步完成Web应用程序压力测试(转)

Web 性能压力测试工具之 Siege 详解

Web性能压力测试工具——Siege详解

LoadRunner使用记录

web压力测试 要测试哪些方面

怎样正确做 Web 应用的压力测试