我的CPU使用率是100%的大部分时间在Windows Server 2008-R2与我自己的vps,vmware,四核,和4GB的Ram。当我打开windows任务管理器,并转到资源监视器,我看到100%的使用率是因为workerprocess.exe
。我有3个网站在我的IIS。
- 我如何确定哪个网站导致了这种使用
- 如何将CPU使用率限制在80%?
- 会不会是DDOS攻击?
- 有什么方法可以防止DDOS吗?
我在vps上安装了eset-nod32,但是日志中没有显示任何攻击。我试着搜索IIS和防止DDOS,刚刚找到了一个班宁IP地址的扩展,但是我怎么才能找到产生流量的IP地址呢?
该网站是用ASP.NET
和C#
编写的。如何确定该网站上发生了什么以及哪些代码行导致了CPU占用?
另外,我的一个网站需要访问管理员的桌面并读写一些文件,因此我将它的应用程序池-〉标识(进程模型)改为本地系统,我不知道这是否与CPU使用率有关。
8条答案
按热度按时间3bygqnnd1#
诊断
在诊断哪些应用池导致了问题方面,您可以:
1.选择服务器
1.转到IIS〉工作进程
这应该会弹出一个这样的菜单,这样你就可以确定哪个应用程序池正在疯狂运行。
从那里,你可以简单地重新启动应用程序池和9倍的10,将修复任何即时问题,你有。
治疗
除非你经营着某种有争议的业务,否则这可能不是DDOS攻击。很可能是一些代码挂起了,因为它无法到达另一台服务器,或者陷入了循环,或者资源分配不当,或者你的应用池只是暂时没有回收。
您可以通过编程方式处理此问题,而无需手动识别、登录和回收应用程序池。只需在应用程序池中配置CPU property。您可以让它在达到CPU阈值并持续一定时间时终止(并自动重启)您的进程。
在您的情况下,如果您希望它在80%时重新启动,您可以右键单击应用池并转到高级设置,然后应用以下配置:
注意:正如kraken101指出的,不同的IIS GUI会随着时间的推移对此进行不同的处理。虽然配置值总是以百分比的1/1000为单位,但有时GUI会采用整个百分比。
您可以将其添加到your config部分,如下所示:
或者,您可以使用Powershell的WebAdministration Module编写脚本,如下所示:
(* make sure web-scripting-tools is enabled)
预防
上面的步骤将有助于修复一些东西,一旦他们已经打破,但不会真正解决任何潜在的问题,你有。
以下是一些有关执行性能监视的资源:
vd2z7a6w2#
好吧,这要花很长时间才能弄明白。有几点可以缩小范围:
at0kjp5o3#
您可以看到w3wp.exe高CPU使用率的原因有很多。我选择了六个常见原因来介绍。
1.应用程序依赖关系问题
1.垃圾收集
1.请求在ASP.NET管道中的某个位置被阻塞或挂起
1.需要优化的低效. NET代码
5n0oy7gb4#
使用PerfMon收集数据,使用DebugDiag进行分析。
搜索类似问题时找到此链接。
http://www.iis.net/learn/troubleshoot/performance-issues/troubleshooting-high-cpu-in-an-iis-7x-application-pool
mwkjh3gx5#
我最近也面临着同样的问题,找到了一个对我有效的解决方案,在很大程度上降低了内存消耗水平。
首先找到导致大量内存使用的应用程序。
您可以在任务管理器的"详细信息"部分找到此信息。
下一个。
1.打开IIS管理器。
1.单击应用程序池。您将找到系统正在使用的许多应用程序池。
1.现在,从任务管理器中,您已经找到了导致大量内存消耗的应用程序。该应用程序有多个选项,您需要选择Web应用程序的应用程序列中包含"1"的应用程序。
1.单击右侧的应用程序池时,您将在"编辑应用程序池"下看到一个选项高级设置。转到"高级设置"。5.现在,在"常规"类别下,将"**启用32位应用程序"**设置为"True
1.重新启动IIS服务器,或者您可以在任务管理器的性能部分看到消耗下降。
如果这个解决方案对你有效,请添加评论,这样我就可以知道了。
htzpubme6#
如果没有必要,请从网站的相应应用程序池中关闭“启用32位应用程序”。
这在我的本地计算机上对我有效
mw3dktmi7#
使用procmon定义您的问题。
ppcbkaq58#
我自己最近也遇到了这个问题,一旦我确定是哪个应用池导致了这个问题,解决这个问题的唯一方法就是完全删除那个应用池,然后创建一个新的应用池供网站使用。