win2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法_win服务器

1:使用 MicrosoftJet 数据库引擎 Web 应用程序可能停止响应负载,造成假死:
原因:发生此问题是因为 Jet 数据库引擎中存在缺陷。 Microsoft Windows Server 2003 上只会出现此问题。 在 Windows Server 2003, COM+ 更改频率 CoFreeUnusedLibraries 函数被调用。 此更改导致 Jet 驱动程序以初始化频繁。 此行为可能导致死锁条件。
Web 服务器负载时最常出现此问题。
补丁下载:
chs:WindowsServer2003-KB838306-x86-chs.exe
enu:WindowsServer2003-KB838306-x86-enu.exe
在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。

解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。

解决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 (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。

QUOTE:

环境:win2003server+IIs+ASP+MSSQL

现象:每隔一段时间(不定,有时几分钟,有时半小时)出现一次网站打开非常缓慢,甚至有时会出现超时打不开站点,此时查看服务器端的进程,CPU占用率达到100%,其中w3wp占用70~80%,SQL占用20~30%。所有服务器端的操作也变得缓慢。

初期解决方法:每次现象出现时,立即登录服务器直接结束w3wp进程或重启IIS服务,平均每天约十次操作,由于服务器存放于远程机房,所有操作都是远程控制进行,有时会因此出现远程无法连接登录的情况,只能通过电话通知机房管理人员重启服务器解决,此过程导致用户抱怨不断。

经过网上查阅资料,发现此类现象多数由于网页代码不合理所致,以下情况会导致此类现象发生:
1、代码中多处使用application、seesion等服务器缓存,导致服务器资料过度占用;
2、代码有不合理语法,死循环等;
3、数据库损坏,尤其是ACCESS数据库;
4、装过多第三方软件或插件,与IIS或网页功能代码冲突。

第一阶段排查:根据查阅到的参考资料逐项分析
1、服务器上所有站点代码均为公司设计人员自行编写,可证实并无过多调用服务器缓存语法(排除)
2、代码是否存在不合理语法(不确定)
3、根据情况来看,IIS进程占用率升高时,SQL占用率同时升高,应为SQL数据库的站点,根据现象判断,库或表应该正常,估计是数据方面可能有误;(不确定)
4、服务器端除了基本的系统服务,防杀毒及网站运作必备服务之外,并无多余第三方软件,机率不大(排除)。

经过以上分析判断,将不确定项连起来得出的结论是:某个采用了SQL数据库的网站网页代码存在不合理语法,导致IIS和SQL进程CPU占用率过高。

第二阶段排查:
确定范围,接着继续把范围缩小。
由于服务器上采用SQL数据库的站点并不多,便于建立独立进程ID来观察,将所有采用SQL数据库的站点在IIS管理器中分别建立独立的应用程序池,然后通过CMD界面输入:iisapp -a 命今查看并记录下各IIS池的进程ID号,通过多次现象重现时的观察,有个IIS进程ID是导致此次问题的罪魁祸首。

补充:
限制sql的内存。企业管理器——SQL的属性(一般是local)——“内存”标签,在这里看内存的设置,把最大值改成100M吧(这个确实有一定的作用)。只不过还是存在系统资源占用比较多的,继续寻找产生的原因。。。

时间: 2024-08-25 08:51:50

win2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法_win服务器的相关文章

Windows服务器上lsass.exe进程CPU使用率异常问题排查方法_win服务器

近期有几台服务器相继出现 lsass.exe 占用CPU过高,也不算太高,而且过了一段时间又会恢复正常,CPU过高直接造成网站打开很慢,周而反复. 在CPU跑高的时候,伴随着一个现像就是网络的浮动,有时候上传居然达到了30M - 90M/s,对外攻击,第一时间就想到有可能是这个原因,那具体怎么查呢? 常见的对外文件,这东西网上搜一下就能找到. 复制代码 代码如下: <?php set_time_limit(86400); ignore_user_abort(True); $packets = 0

httperr 占用大量系统空间的解决方法_win服务器

C:\WIN2003\system32\LogFiles\HTTPERR 文件夹下有许多的小文件 一个正好是 1024KB 文件名是httperr****.log 这样格式的文件.     在IIS 6.0中,记录日志的功能已经改为由http.sys实现,http.sys在内核模式下运行.这一改进加快了日志写入速度,同时避免了多个工作进程争用同一日志文件.某些特殊的情况下,http.sys会遇到错误,这时它应该但却不能将日志信息写入Web网站的日志,例如,工作进程正在被回收,禁止http.sys

64位系统中IIS7运行ASP时出现ADODB.Connection 800a0e7a错误的解决方法_win服务器

今天将一个ASP网站拷贝到64位的Windows7中运行,IIS7安装都没有问题,可就是死活运行不了,总是出现ADODB.Connection错误"800a0e7a",真是奇怪,之前在XP中运行一点问题都没有的.起初以为是代码上的原因,于是写一段最简单的连接数据库的代码,还是出错,研究半天终于找到了解决方法,拿来分享. 原因是因为在64位Windows7操作系统中,IIS7应用程序池默认没有启用32位应用程序,而我们连接ACCESS数据库的驱动程序Microsoft.Jet.OLEDB

组策略中的审核策略提示 Windows无法读取模板信息的解决方法_win服务器

组策略出现"windows无法读取模板信息"是因为删除了Win2000/XP/2003中的guest账号.解决办法: 1.注册表有备份.很简单,恢复备份就是了. 组策略出现"windows无法读取模板信息"是因为删除了Win2000/XP/2003中的guest账号.解决办法: 1.注册表有备份.很简单,恢复备份就是了. 2.注册表没有备份. 下面是我从windows server 2003上倒出来的两个注册表项,复制另存为 guest修复.reg,导进去即可. 复

IIS中User-mode caching引起的Cache-Control不为public问题的解决方法_win服务器

web.config中对应的配置如下: 复制代码 代码如下: <configuration>    <system.webServer>        <caching>            <profiles>                <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilCha

解决服务器w3wp.exe进程占用cpu和内存过多问题

最近公司服务器总出现CPU100%占用情况,服务器配置为双核Xeon3.0x2,2G ECC内存. 发现是w3wp.exe长时间占用大量CPU.出现这种情况应该是网站程序存在死循环等问题所致. 在找到问题以前可以暂时采取限制w3wp进程CPU使用率的方法保证网站可以将就着工作: 在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢. 解决CPU占用过多: 1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响. 2.设置应用程序池的CPU监

IIS6 w3wp.exe进程占用cpu和内存过多的解决方法

  今天有朋友问我他的服务器网站访问很卡,内存及CPU占用不能及时释放,从而导致服务器响应速度很慢,这里简单介绍下,方便需要的朋友 在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢. 解决CPU占用过多: 1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响. 2.设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭. 根据w3wp取得是哪一个应用程序池: 1.在任务管理器中增加显示pid字段(任务

认识w3wp.exe进程,从根本上解决占用资源较大问题_win服务器

在windows server 2003中对于每一个web应用,iis 6.0都用一个独立的w3wp.exe的实例来运行它.w3wp.exe也称为工作进程(每一个主机头都会有一个) 直接在任务管理器中结束进程是不起作用的,结束后不久它会执行启动,要想结束它可以在iis中找到相应的应用程序池停止相应的应用程序池工作. 这些都不是解决办法,它的根本问题是你的那个网站程序有问题,在找到问题以前可以先打开iis找到应用程序池先用右键属性中设置"性能"把其中的cpu设成大于60%关闭应用程序池,

w3wp.exe进程占用内存过高解决办法

今天研究了一下,可以做以下配置: 1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响. 2.设置应用程序池的回收时间,默认为1720小时,可以根据情况修改.同时,设置同时运行的w3wp进程数目为1.再设置当内存或者cpu占用超过多少,就自动回收内存   一般来说,这样就可以解决了.但仍然会出现个别网站因为程序问题,不能正确释放. 那么,怎么样才能找到是哪一个网站的?   1.在任务管理器中增加显示pid字段.就可以看到占用内存或者cpu最高的进程pid 2.在命令提示符下运行ii