做测试能做到什么程度呢,尽力吧!

服务器的w3wp.exe进程占用cpu和内存过多的问题(转载)

上一篇 / 下一篇  2007-08-29 11:12:32 / 个人分类:服务器性能

51Testing软件测试网/MB3| H/f

最近公司服务器总出现CPU100%占用情况,服务器配置为双核Xeon3.0x2,2G ECC内存。发现是w3wp.exe长时间占用大量CPU.出现这种情况应该是网程序存在死循环等问题所致。在找到问题以前可以暂时采取限制w3wp进程CPU使用率的方法保证网站可以将就着工作

%z$ew` }YO#q y0
Word-WRAP: break-word" bgColor=#fdfddf>51Testing软件测试网#h]st,w trk

以下为引用的内容:

51Testing软件测试网:o$K_;q2{5?([7t\F

51Testing软件测试网 Wpd;@U$q\Bm,M

51Testing软件测试网4_I4oq1[c(^

在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。51Testing软件测试网~V:P;@)W9d
51Testing软件测试网jB;c;Et H/}!e3t&t
解决CPU占用过多:51Testing软件测试网~3a kd?4c)S
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。51Testing软件测试网~2b^h5s pM
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。
flt-_kR*f)V2Mgm051Testing软件测试网AH!dO[+`{e\
根据w3wp取得是哪一个应用程序池:
{#H}R1zAa|01、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
.E,GM+RTs02、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based scrīpt Host”来执行,就可以得到PID与应用程序池的对应关系。)
}+WMt6ZM@@#U,}03、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。51Testing软件测试网w:_$UbJ+^2nm }eEF
51Testing软件测试网1d6LI G\
解决内存占用过多,可以做以下配置:51Testing软件测试网4op,x#BU7qf s
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2^1qG!^"i&M6m02、设置应用程序池的回收时间,默认为1720小时,可以根据情况改。再设置当内存占用超过多少(如500M),就自动回收内存。
4}*p9s4PQR7_qm!T0
51Testing软件测试网]}BU!S"O T#O

我的设置如下:
p;WQ(dZ U0首先是对CPU的限制:在启用cpu监视后,我设置该应用程序池最大的cpu使用率为50%。设置刷新cpu时间为1分钟,设置操作为“关闭”。最大工作进程数设置为1。这个意思是,IIS刷新检测该独立池的CPU使用情况时间为1分钟,如果超过设置的cpu限制50%,就会发出关闭池的指令,要求池在指定的时间内关闭。如果池成功在这个时间内关闭,IIS会重启动一个新池,此段时间很短,一般不会有什么感觉,池就重新开启了,对于访问网站的人基本是不会有感觉的。但如果池没有在指定时间内关闭,IIS就会强行关闭它一个刷新CPU时间。在这个停止的时间内,网站无法访问,提示“Service Unavaliable”。
@J'M*T v y@Z4j}051Testing软件测试网+G.g~6n dU Ppl h

Click Here51Testing软件测试网)I N$]|g"J


:L9G5e$c&F@0关闭时间和启动时间间隔设置:设短一些比如10秒,这样当您的网站程序大量占用系统资源时IIS自动快速回收进程并且快速启动进程,您的网站暂时还可以将就着工作。
F9i0P{}-Q5G(n@0

C3f#F4MC-e2J`0

Ve)S'y?/PD q051Testing软件测试网,G _[ y)D;{1ReH

Click Here51Testing软件测试网{?(M,b2ny5~1V hI

51Testing软件测试网1IB D/Xb ABj/T
对内存的限制及进程回收时间的设置:我设置为内存占用超过800M就自动回收内存,虚拟内存没有做限制。进程回收时间我保持默认没有修改。各位可以根据自己的情况设置更短的时间。对应用程序池最大虚拟内存也可以在此进行设置,超过了设置的最大虚拟内存,该池会就被回收。51Testing软件测试网E*[8e+Z+w$n8QQ

Click Here51Testing软件测试网W9H,] T Y F[W4}~%|(j

51Testing软件测试网 N/c1ay!_u9O

t&hvx~dfQ0最后综合落伍wlmmc的一些经验,总结一些需要注意的问题:
3KC's5XC YE051Testing软件测试网S j^o"tP1T:X*`#`d
1、 要限制一个站点的CPU使用,必须将该站点设置为独立应用程序池,共用应用程序池是无法限制单个站点的。IIS独立应用程序池,就需要独立的进程,非常消耗内存。独立池越多,就有越多的W3WP进程。对于每个站点均要独立应用程序池的服务器,在一般的普通P43.0 2G内存 的普通服务器上,建议不要超过50个站点,最好30以内,不然服务器压力非常大。在配置上,我一般把资源消耗较大的网站独立一个池,一般普通BBS或者生成Html的系统大概5个站一个池。普通网站以及一些企业站点均共用一个池。
XlQ!F~051Testing软件测试网 veMckC(L3x]*hw
2、根据wlmmc的经验,在服务器硬件允许的情况下,一般不要限制站点内存使用,这样能够保证网站运行,不会出现用户掉线情况。需要限制某站的最大虚拟内存不要小于64M,不然可能出现一些未知的错误。51Testing软件测试网9[YLkR6}
51Testing软件测试网(_mn2W/xDa
3、这些都不是根本解决办法,它的根本问题是网站程序有问题,要解决根本问题还要从程序查起。根据本文开头提到的方法查到具体的应用程序池,找到使用此应用程序池的网站,解决网站程序存在的问题,如死循环之类。51Testing软件测试网b6x?;MX[7b3y*z

@v uz%Oz04、除了w3wp.exe, 在调用数据库进行大量查询操作的时候,也会大量占用CPU资源,这是难免的(数据库方面的语句及结构优化不在本文讨论范围之内)。个人认为,只要不是CPU长时间占用100%, 一般在75%左右都是正常的。51Testing软件测试网9RZ3i(`}Y[
51Testing软件测试网B%L FxR|W6p
非常愿意和各位在服务器配置、优化、安全等方面进行交流和讨论。
i3O6z6]5o0ML$E s0
,\l u|o/X1e2i0我的联系方式:QQ:9159176 /MSN: xiao926#msn.com

Wa(fs0l ]4H N0

)q1D+Ae'PbL$@0我的Blog: http://www.xiaoming.org

%|3g%N&Y6l6i2~#f5r0

TAG: 服务器性能

 

评分:0

我来说两句

日历

« 2024-10-26  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 14955
  • 日志数: 16
  • 图片数: 4
  • 建立时间: 2007-08-09
  • 更新时间: 2007-09-30

RSS订阅

Open Toolbar