服务器的w3wp.exe进程占用cpu100%的完美解决方案

在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。

解决CPU占用过多:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。

根据w3wp取得是哪一个应用程序池:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft ® Windows Based scrīpt Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。

解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。
我的设置如下:
首先是对CPU的限制:在启用cpu监视后,我设置该应用程序池最大的cpu使用率为50%。设置刷新cpu时间为1分钟,设置操作为“关闭”。最大工作进程数设置为1。这个意思是,IIS刷新检测该独立池的CPU使用情况时间为1分钟,如果超过设置的cpu限制50%,就会发出关闭池的指令,要求池在指定的时间内关闭。如果池成功在这个时间内关闭,IIS会重启动一个新池,此段时间很短,一般不会有什么感觉,池就重新开启了,对于访问网站的人基本是不会有感觉的。但如果池没有在指定时间内关闭,IIS就会强行关闭它一个刷新CPU时间。在这个停止的时间内,网站无法访问,提示“Service Unavaliable”。

关闭时间和启动时间间隔设置:设短一些比如10秒,这样当您的网站程序大量占用系统资源时IIS自动快速回收进程并且快速启动进程,您的网站暂时还可以将就着工作。

对内存的限制及进程回收时间的设置:我设置为内存占用超过800M就自动回收内存,虚拟内存没有做限制。进程回收时间我保持默认没有修改。各位可以根据自己的情况设置更短的时间。对应用程序池最大虚拟内存也可以在此进行设置,超过了设置的最大虚拟内存,该池会就被回收。

总结一些需要注意的问题:

1、 要限制一个站点的CPU使用,必须将该站点设置为独立应用程序池,共用应用程序池是无法限制单个站点的。IIS独立应用程序池,就需要独立的进程,非常消耗内存。独立池越多,就有越多的W3WP进程。对于每个站点均要独立应用程序池的服务器,在一般的普通P43.0 2G内存 的普通服务器上,建议不要超过50个站点,最好30以内,不然服务器压力非常大。在配置上,我一般把资源消耗较大的网站独立一个池,一般普通BBS或者生成Html的系统大概5个站一个池。普通网站以及一些企业站点均共用一个池。

2、根据wlmmc的经验,在服务器硬件允许的情况下,一般不要限制站点内存使用,这样能够保证网站运行,不会出现用户掉线情况。需要限制某站的最大虚拟内存不要小于64M,不然可能出现一些未知的错误。

3、这些都不是根本解决办法,它的根本问题是网站程序有问题,要解决根本问题还要从程序查起。根据本文开头提到的方法查到具体的应用程序池,找到使用此应用程序池的网站,解决网站程序存在的问题,如死循环之类。

4、除了w3wp.exe, 在调用数据库进行大量查询操作的时候,也会大量占用CPU资源,这是难免的(数据库方面的语句及结构优化不在本文讨论范围之内)。个人认为,只要不是CPU长时间占用100%, 一般在75%左右都是正常的。

网站建设能否先为客户出设计效果图?

“能否先做个效果图给我们看看?”这是做网站建设的公司经常会遇到的客户提出的问题!

其实,这是一场博弈,如果提前做了效果图,那么有三个结果:1、不满意接着寻找下家网络公司;2、满意,还是接着寻找下家网络公司或者个人,照着我们辛辛苦苦设计的效果图,套程序;3、满意,与我们签合同付预付款,开始开发。我们都想要的是第3个结局,可是,往往不随人愿!致使很多的网络公司放弃这种赔了夫人又折兵的谈判方式,宁可不做这个业务,也不愿意把自己陷入博弈的漩涡。

每个网络公司都有自己的开发案例,每个案例都凝聚着设计师的心血,如果,案例仍无法使客户相信公司的开发实力,那还有什么能做为建立双方的合作契机呢?正如我们经常会听到的“先出几个设计效果图让我们看一下你们的开发实力”或者“过去做得好只能代表过去的实力,我们要看现在的能力”之类的措辞,让我们这些网络公司很受“启发”,对于这类的客户,可能并未找到合适的谈的来的合作伙伴,因此,我们宁愿退避三舍!并不是我们不愿意出图,而是,付出的和所承担的风险并不成正比,而且差的太多!

启航远翔给客户一个选择网络公司的方法,如下

第一:判断网站制作方的案例是不是其真实的案例,目前市场上有很多的网站制作方的案例都挂的是一些做工非常精美大气的知名企业的网站以骗取客户对他们设计水平的信任,其实知名企业的网站哪还需要找专业的网络公司做,他们自己公司内部有专业的美工和程序员,根本就不用找网络公司来做,所以凡是挂有知名企业的案例都值得怀疑,当然还可以通过查询IP查询进行对比或看看网站下方是否有技术支持也可以判断是否属于网站制作方的真实案例,当然如果不是真实的案例的话,则完全没有必要浪费你的宝贵时间。

第二:了解他们的真实案例是否能体现出他们的设计水准,如果他们的真实案例设计的水平觉得还才以,那当然完全可以放心找他们合作。如果不是当然也没有必要去找他们设计什么效果图,即使他们答应给你们设计,大部分情况下也设计不出什么满意的效果图,这样何必又浪费彼此的时间了。

第三:了解对方的程序开发能力,网站不仅仅需要进行页面的设计还需要后台程序的开发,即使对方有让你心动的页面设计,但是却无强劲的程序开发实力,到头来,会因为网站程序功能的不完善而导致你无法管理自己的网站,所以这样的中看不中用的网站也会让你大失所望,所以要想使自己有所保障,除了考查衡量网站制作方的设计能力之外还要考虑网站的程序开发能力。

以上是启航远翔多年总结出来的经验,仅供参考,当然目前市场的竞争激烈,也会有一部分他愿意先出效果图,但是仅仅只从效果图来决定是否选择对方,这显然还不是周全之策,我们觉得,考查衡量网站制作方的设计能力与程序开发能力才是稳妥之举。

因此,我们站在客户的角度和网络公司的角度来分析,给出了两者皆能接受的谈判方法,希望给客户和同行的朋友们带来帮助!