在对 ASP.NET 应用程序进行负载测试时,我们发现页面在高负载下需要 20-30 秒。
我们怀疑这是因为页面正在等待数据库调用或 Web 服务。
是否有特定的性能计数器可以识别 Web 服务器上的这种瓶颈?CPU、内存、磁盘正常。
还是我们必须使用 perfmon 以外的工具来追踪这个瓶颈?
在对 ASP.NET 应用程序进行负载测试时,我们发现页面在高负载下需要 20-30 秒。
我们怀疑这是因为页面正在等待数据库调用或 Web 服务。
是否有特定的性能计数器可以识别 Web 服务器上的这种瓶颈?CPU、内存、磁盘正常。
还是我们必须使用 perfmon 以外的工具来追踪这个瓶颈?
如果您怀疑特定应用程序或服务导致内存泄漏,请使用以下计数器调查应用程序的内存使用情况:
内存泄漏和非分页池
尽管任何泄漏都很严重,但当涉及非分页池时,内存泄漏尤其值得关注。许多系统服务从非分页池中分配内存,因为它们在处理中断时需要引用它,并且此时不能发生页面错误。要确定泄漏是否影响非分页池,请在您的监控中包括以下计数器:
如何识别:泄漏的应用程序不断地请求更多内存。它的特点是进程/页面文件字节以与系统提交字节相同的速率增加;即所有内存承诺都归因于一个进程。可用字节稳步减少,直到系统将某些内容分页,然后虚拟字节增加以为更多可用字节腾出空间。当部分被分页时,泄漏应用程序的工作集实际上会减少。请注意页面错误/秒如何随着可用字节的下降而增加。
Windows 资源工具包包括一个名为 LeakyApp.exe 的示例程序。这个程序有一个典型的错误是不断分配越来越多的内存。