windows2003服务器上IIS占用CPU资源100%的解决办法
解决方【jiě jué fāng】案【àn】1:
现象:机器正在【zài】💩调试或允许😓IIS时,被异常【bèi yì cháng】🦐中断【duàn】服务【fú wù】🥟(比如【rú】停💖电【diàn】🕜),然后再次【cì】IIS运行【yùn háng】页面时,CPU资【zī】源占用【zhàn yòng】🈂100%,即使重⤵新启动【xīn qǐ dòng】也无效。
原因【yuán yīn】👕:发生中【fā shēng zhōng】断【duàn】时,IIS会写异常【cháng】日志🛤,但是此🌶时写入👟了【le】乱码,造成IIS一直写【yī zhí xiě】😢日志的死循环【sǐ xún huán】🏘,耗尽了【hào jìn le】系统资【xì tǒng zī】源。找到系【zhǎo dào xì】统路径\System32\Logfiles\W3SVC1 下当天📘的错误🎫日志文件,即可【jí kě】🎆看到【dào】以上内容。
解决【jiě jué】:删除【shān chú】 系统路径\System32\Logfiles\W3SVC1 下当天📘的错误🎫日志文件,如【rú】:ex060904.log,然后重【rán hòu chóng】新启动【xīn qǐ dòng】IIS即可【jí kě】🎆。
解决方【jiě jué fāng】案【àn】2:
环【huán】境:win2003server+IIs+ASP+MSSQL
现象:每隔一段时间【shí jiān】💞(不定,有时几【yǒu shí jǐ】分钟🍺,有时半【yǒu shí bàn】小时)出现一次【cì】网站【wǎng zhàn】打开非常【cháng】缓慢【huǎn màn】💗,甚至有【shèn zhì yǒu】时会🥡出现超时🥃打不开🐜站点,此时查看服务器【fú wù qì】🖕端的进【duān de jìn】程,CPU占用率【zhàn yòng lǜ】🎪达到【dào】100%,其中w3wp占用【zhàn yòng】🈂70~80%,SQL占用【zhàn yòng】🈂20~30%。所有服务器【fú wù qì】🖕端的操【duān de cāo】作也变【zuò yě biàn】得【dé】🐿缓慢【huǎn màn】
初期解决方【jiě jué fāng】法👂:每次现【měi cì xiàn】象出现【xiàng chū xiàn】时,立即登【lì jí dēng】录服务器【fú wù qì】🖕直接结束w3wp进程【jìn chéng】或重启【chóng qǐ】😻IIS服务【fú wù】🥟,平均每天约十【tiān yuē shí】🍹次操作【cì cāo zuò】,由于服【yóu yú fú】务【wù】器🖕存放于远🔊程机房【chéng jī fáng】,所有操作都是远程控制进行【zhì jìn háng】🚘,有时会【yǒu shí huì】🥡因此出现远程🙆无法连🚵接登录😤的情况,只能通过【guò】🅾电【diàn】🕜话通知机房管理🐴人员重启【chóng qǐ】😻服务器【fú wù qì】🖕解决【jiě jué】,此过【guò】🅾程导致【chéng dǎo zhì】用【yòng】🐦户抱怨【hù bào yuàn】不断【duàn】
经过【guò】网🐹上查阅资料【zī liào】🎻,发现此类现象🎻多🥠数由于网页🐮代码不合理【bú hé lǐ】🐥所致,以下情况会导致此类【zhì cǐ lèi】现象🎻发生:
1、代码中【dài mǎ zhōng】👝多🥠处使用【yòng】🐦application、seesion等💿服务器【fú wù qì】🖕缓存,导致服📷务器资【wù qì zī】📝料过【guò】度🦒占用【zhàn yòng】🈂;
2、代码有🧗不合理【bú hé lǐ】🐥语法【yǔ fǎ】👂,死循环【sǐ xún huán】🏘等💿;
3、数据库【shù jù kù】🍀损坏,尤其是🐆ACCESS数据库【shù jù kù】🍀;
4、装过【guò】多⬜第三方【dì sān fāng】🏓软件或插件【chā jiàn】⤵,与IIS或网页功能代码冲突。
第一阶段排查🅰:根据【gēn jù】🎟查阅到【chá yuè dào】的参考资【zī】🔇料逐项🈂分析
1、服务器【fú wù qì】🖕上所有站点代码均为【mǎ jun1 wéi】公司设🔉计人员🐛自行编【zì háng biān】🌙写,可证实并无过【guò】多⬜调用【yòng】🐦服务器【fú wù qì】🖕缓存语法【yǔ fǎ】👂(排除【pái chú】🐹)
2、代码是否存在【fǒu cún zài】🖕不合理【bú hé lǐ】🐥语法【yǔ fǎ】👂(不确定【bú què dìng】😛)
3、根据【gēn jù】情🐨况来看,IIS进程占【jìn chéng zhàn】👗用率升【yòng lǜ shēng】📃高时【gāo shí】,SQL占用率【zhàn yòng lǜ】🎪同时升【tóng shí shēng】高【gāo】,应为SQL数据库【shù jù kù】🍀的站点【de zhàn diǎn】🗝,根据【gēn jù】🎟现象判【xiàn xiàng pàn】断【duàn】,库或表应该正常【cháng】,估计是😰数据方面可能🌇有误💞;(不确定【bú què dìng】😛)
4、服务器【fú wù qì】🖕端除了【le】😌基本的🆗系统服【xì tǒng fú】📊务【wù】,防杀毒及👴网站运【wǎng zhàn yùn】作必【zuò bì】🥙备服务【bèi fú wù】🥟之外🌀,并无多🥠余第三【yú dì sān】🥠方软件🦏,机率不【jī lǜ bú】大【dà】🤔(排除【pái chú】🐹)。
经过【guò】🅾以上分析判断【duàn】,将不确【jiāng bú què】定😛项连起来得【dé】出的结论是:某个采用【cǎi yòng】了【le】🕜SQL数据库【shù jù kù】🍀的网站【de wǎng zhàn】网页代码存在【zài】🌬不合理【bú hé lǐ】🐥语法【yǔ fǎ】👂,导致IIS和SQL进程【jìn chéng】CPU占用率【zhàn yòng lǜ】🎪过【guò】🅾高【gāo】。
第二阶段排查🅰:
确定范围,接着继续把范🐖围缩小。
由于服【yóu yú fú】务【wù】器🖕上采用【shàng cǎi yòng】🐦SQL数据库【shù jù kù】🍀的站点【de zhàn diǎn】🗝并不多🥠,便于建立独立进程【jìn chéng】ID来观察【lái guān chá】,将所有采用【cǎi yòng】🐦SQL数据库【shù jù kù】🍀的站点【de zhàn diǎn】🗝在【zài】💩IIS管理器【guǎn lǐ qì】中分别🚑建立独立的应用【yòng】🐦程序池【chéng xù chí】🏆,然后通过【guò】🅾CMD界面输【jiè miàn shū】入:iisapp -a 命今查看并记录下各IIS池🏆的进程【de jìn chéng】ID号【hào】🔕,通过【guò】多⬜次【cì】现象重现时🐂的观察【de guān chá】,有个IIS进程【jìn chéng】ID是导致此次【cì】问🌄题的罪魁祸首🍟。
解决方【jiě jué fāng】案【àn】3:
在【zài】💩IIS6下,经常出【jīng cháng chū】现w3wp.exe的内存及👴CPU占用【zhàn yòng】🈂不能及👴时释放【shí shì fàng】,从而导致服📷务器响【wù qì xiǎng】应速度【yīng sù dù】很慢。
解决【jiě jué】内🍷存占用【zhàn yòng】过【guò】🤛多🥠,可以做🍙以下配🕕置【zhì】🗑:
1、在【zài】💩IIS中对每📋个网站【gè wǎng zhàn】👙进行单🧕独的应【dú de yīng】用【yòng】🐦程序池【chéng xù chí】🏆配置【pèi zhì】🗑。即互相🔟之间不【zhī jiān bú】😏影响🎖。
2、设置应【shè zhì yīng】🤖用【yòng】🐦程序池【chéng xù chí】🏆的回收时间【shí jiān】🚮,默认为🗣1720小时,可以根【kě yǐ gēn】据情【jù qíng】🐨况修改【kuàng xiū gǎi】💬。再设置【zhì】🗑当内存【dāng nèi cún】占用【zhàn yòng】🈂超过多【chāo guò duō】⬜少(如【rú】500M),就自动【jiù zì dòng】回收内存。
解决【jiě jué】CPU占用【zhàn yòng】过【guò】🤛多🥠:
1、在【zài】💩IIS中对每📋个网站【gè wǎng zhàn】👙进行单🧕独的应【dú de yīng】用【yòng】🐦程序池【chéng xù chí】🏆配置【pèi zhì】🗑。即互相🔟之间不【zhī jiān bú】😏影响🎖。
2、设置应【shè zhì yīng】🤖用【yòng】🐦程序池【chéng xù chí】🏆的CPU监视❄,不超过【guò】🍊25%(服务器【fú wù qì】🖕为4CPU),每分钟🍺刷新【shuā xīn】,超过【guò】限🌎制时关闭【bì】。
根据【gēn jù】🎟w3wp取得是【qǔ dé shì】那个一【nà gè yī】🎖个应用【yòng】🤰程序池【chéng xù chí】🏆:
1、在【zài】💩任务【wù】管理器【guǎn lǐ qì】中增加显【zēng jiā xiǎn】示pid字段📰。就可以【jiù kě yǐ】🎁看到【dào】占用【zhàn yòng】🈂内存或📗者cpu最高【gāo】的进程【de jìn chéng】
2、在【zài】💩命令提示符📋下运行【yùn háng】🏒iisapp -a。注意🔧,第一次【cì】🍖运行【yùn háng】,会提示🖌没有【méi yǒu】js支持,点击确【diǎn jī què】定。然后再次【cì】运行【yùn háng】就可以【jiù kě yǐ】🎁了【le】。这样就可以【jiù kě yǐ】🎁看到【dào】pid对应的【duì yīng de】🖼应用【yòng】🐦程序池【chéng xù chí】🏆。(iisapp实际上【shí jì shàng】是存放🐒在【zài】💩C:\windows\system32目录下🌺的一个VBS脚本【jiǎo běn】,全名为iisapp.vbs,如果你【rú guǒ nǐ】和我一样,也禁止【yě jìn zhǐ】🔍了【le】Vbs默认关🕶联程序👓,那么就【jiù】需要手🈯动到【dào】该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以【jiù kě yǐ】🎁得【dé】到【dào】PID与应用【yǔ yīng yòng】🐦程序池【chéng xù chí】🏆的对应关系【guān xì】🙍。)
3、到【dào】iis中察看🛳该应用【gāi yīng yòng】🕹程序池【chéng xù chí】🏆对应的【duì yīng de】🖼网站【wǎng zhàn】,就【jiù】ok了【le】,做出上面的内👘存或📗CPU方面的限制,或检查【huò jiǎn chá】🗂程序有无死循【wú sǐ xún】环【huán】🏘之类的问题【wèn tí】。
关键词【guān jiàn cí】:windows2003,服务器【fú wù qì】,CPU,100%,解决办♉法🍐,IIS
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 56
- 0
- 0
- 0
- 0