iis Cpu的使用率为95%,但在生产环境中用户很少

iis Cpu的使用率为95%,但在生产环境中用户很少,iis,cpu-usage,Iis,Cpu Usage,我有一个网站,我使用iis作为我的web服务器。我注意到,在生产服务器上,cpu的使用率很快就达到了95%,用户很少。我在我的开发服务器上没有看到这种行为。我正在使用visual studio进行开发,iis也是我的本地web服务器。与开发服务器相比,您在生产上的流量有多大?它们的参数如何比较?在开始深入分析应用程序本身之前,我将确定所有基础结构和环境差异。有时,这种问题的发生是因为其他一些软件,比如后台运行的防病毒软件 尽管如此,因为这听起来更像是一个应用程序问题,所以我首先要检查事件查看器是

我有一个网站,我使用iis作为我的web服务器。我注意到,在生产服务器上,cpu的使用率很快就达到了95%,用户很少。我在我的开发服务器上没有看到这种行为。我正在使用visual studio进行开发,iis也是我的本地web服务器。

与开发服务器相比,您在生产上的流量有多大?它们的参数如何比较?在开始深入分析应用程序本身之前,我将确定所有基础结构和环境差异。有时,这种问题的发生是因为其他一些软件,比如后台运行的防病毒软件

尽管如此,因为这听起来更像是一个应用程序问题,所以我首先要检查事件查看器是否有错误。然后,我将从监视几个性能计数器开始,将
%处理器时间
计数器与
当前连接
可用内存
每秒抛出的异常数
%GC中的时间
等关联起来。这种行为通常有以下原因:

  • 由于某些逻辑错误导致循环使用过多,如反复调用同一服务、尝试加载或解析故障文件等。这可以通过转储分析进行分析(如下所示)
  • 垃圾收集器导致的高CPU使用率-当内存使用量很大(甚至出现内存泄漏)时,GC可能会开始消耗越来越多的CPU来应对内存不足。您将在与内存相关的性能计数器中看到这一点
  • 大量抛出的异常(例如,由于网络不可用、生产数据差异等环境问题)也会消耗大量CPU。事件查看器和与异常相关的性能计数器(因为它们可以由应用程序静默处理)应该是这里的指示器

为了进一步分析您的应用程序,我建议在高CPU使用率期间进行完全内存转储。你可以用这个工具。有关详细信息,请参阅。

这个问题似乎离题了,因为它的目标是