認(rèn)識(shí)w3wp.exe進(jìn)程,從根本上解決占用資源較大問(wèn)題
直接在任務(wù)管理器中結(jié)束進(jìn)程是不起作用的,結(jié)束后不久它會(huì)執(zhí)行啟動(dòng),要想結(jié)束它可以在iis中找到相應(yīng)的應(yīng)用程序池停止相應(yīng)的應(yīng)用程序池工作。
這些都不是解決辦法,它的根本問(wèn)題是你的那個(gè)網(wǎng)站程序有問(wèn)題,在找到問(wèn)題以前可以先打開(kāi)iis找到應(yīng)用程序池先用右鍵屬性中設(shè)置“性能”把其中的cpu設(shè)成大于60%關(guān)閉應(yīng)用程序池,把關(guān)閉時(shí)間和開(kāi)啟時(shí)間設(shè)短一些比如10秒,這樣當(dāng)您的網(wǎng)站程序大量占用系統(tǒng)資源時(shí)iis自動(dòng)快速回收進(jìn)程并且快速啟動(dòng)進(jìn)程,您的網(wǎng)站暫時(shí)還可以將就著工作。
要解決根本問(wèn)題還要從程序查起,您可以在iis中的應(yīng)用程序池中右鍵創(chuàng)建多個(gè)應(yīng)用程序池,然后在每個(gè)主機(jī)頭中的文件家選項(xiàng)的底部將應(yīng)用程序池對(duì)應(yīng)道剛才建好的應(yīng)用程序池,然后一個(gè)一個(gè)關(guān)閉在任務(wù)管理器中看看是哪個(gè)程序占用的資源較大。
下面是一些網(wǎng)友的相關(guān)貼子也許對(duì)大家有幫助
朋友的web服務(wù)器一直運(yùn)行正常,但這幾天cpu占用率一直將近100%,遂去看個(gè)究竟。
服務(wù)器采用windows 2003, 網(wǎng)站使用asp+access數(shù)據(jù)庫(kù), 查看進(jìn)程列表發(fā)現(xiàn)w3wp.exe 占用了70%以上的cpu,
查看web日志,站點(diǎn)訪問(wèn)量不大,查看tcp連接也不多。用net stop w3svc停掉web服務(wù),cpu占用立即正常,net start w3svc啟動(dòng)web后不久現(xiàn)象又出來(lái)了。停止所有虛擬站點(diǎn),新建一個(gè)虛擬站點(diǎn)發(fā)現(xiàn)并沒(méi)有問(wèn)題,懷疑是站點(diǎn)本身的代碼問(wèn)題。
檢查首頁(yè)代碼,大致是如下結(jié)構(gòu):
粗看一下并沒(méi)有問(wèn)題,但就是這段代碼造成了w3wp.exe占用大量cpu,難道是死循環(huán)?似乎沒(méi)有理由。在循環(huán)體內(nèi)加入計(jì)數(shù),發(fā)現(xiàn)確實(shí)是死循環(huán),說(shuō)明rs.eof一直為false,加入如下代碼:
if rs.eof = true then response.write "eof is true"
if rs.eof = false then response.write "eof is false"
發(fā)現(xiàn)輸出竟然是eof is true eof is false, 說(shuō)明無(wú)法判斷rs.eof的值,為何如此百思不得其解。檢查數(shù)據(jù)庫(kù),發(fā)現(xiàn)庫(kù)中并沒(méi)有mytable表, 如果該表不存在,rs.open "select * from mytable", conn 就會(huì)出錯(cuò),為何沒(méi)有出錯(cuò),很有可能捕獲的異常被忽略了。
檢查包含文件conn.asp, 發(fā)現(xiàn)了異常處理代碼:
on error resume next
原來(lái)問(wèn)題在此。
on error resume next忽略了查詢表時(shí)的失敗以及后續(xù)的錯(cuò)誤,造成進(jìn)入死循環(huán)。
那為何網(wǎng)站本來(lái)運(yùn)行正常,現(xiàn)在卻找不到mytable表了呢?仔細(xì)檢查網(wǎng)站才發(fā)現(xiàn)“有‘客'自遠(yuǎn)方來(lái)”,上傳了后門工具、刪除了多張數(shù)據(jù)表,害我忙活了一天。
更多的內(nèi)容大家還可以到:http://www.microsoft.com/china/technet/security/guidance/secmod93.mspx
查找更詳細(xì)的安全設(shè)置
windows2003 iis6.0假死問(wèn)題解決
這幾天服務(wù)器總是運(yùn)行緩慢,遠(yuǎn)程登錄后發(fā)現(xiàn)一個(gè)w3wp.exe的進(jìn)程占用了100% cpu。
問(wèn)題的原因最終找到兩個(gè):
1.采用的jet 數(shù)據(jù)庫(kù)連接方式存在問(wèn)題:http://support.microsoft.com/?id=838306
補(bǔ)丁下載:
chs:windowsserver2003-kb838306-x86-chs.exe
enu:windowsserver2003-kb838306-x86-enu.exe
2.將access數(shù)據(jù)庫(kù)擴(kuò)展名改為asp
下面是我的差錯(cuò)過(guò)程和解決方案:
搜索一下發(fā)現(xiàn)類似問(wèn)題還真不少,那個(gè)w3wp的進(jìn)程是iis6.0的應(yīng)用程序池,網(wǎng)上的說(shuō)法有兩種,一是因?yàn)閍sp或者asp.net代碼中含有死循環(huán)引起的。但是服務(wù)器上這么多網(wǎng)站,誰(shuí)知道那個(gè)網(wǎng)站出了問(wèn)題。二是由于上面的jet連接數(shù)據(jù)庫(kù)方式的bug引起的,下載838306的補(bǔ)丁,或者升級(jí)到sp1可以解決這個(gè)問(wèn)題,但是打了這個(gè)補(bǔ)丁后,有些網(wǎng)站的問(wèn)題依然存在。
又去搜索,有人說(shuō)將每個(gè)網(wǎng)站建立獨(dú)立的應(yīng)用程序池,應(yīng)用程序池的安全性帳戶設(shè)為本地服務(wù)即可。方法如下:
首先新建應(yīng)用程序池:
然后將網(wǎng)站的應(yīng)用程序池指向剛才建立的應(yīng)用程序池:
在建立完所有應(yīng)用程序池后,統(tǒng)一修改應(yīng)用程序池的屬性:
將應(yīng)用程序池安全帳戶指定為本地服務(wù):
設(shè)置完這些之后,問(wèn)題依然存在,這樣一個(gè)網(wǎng)站出現(xiàn)問(wèn)題,不致影響其他網(wǎng)站,但是這個(gè)網(wǎng)站仍然占用大量資源,導(dǎo)致其它網(wǎng)站響應(yīng)緩慢。不過(guò)在任務(wù)管理器中出現(xiàn)了每個(gè)應(yīng)用程序池的進(jìn)程,因此可以找到具體出問(wèn)題的進(jìn)程了。
下面是尋找出錯(cuò)網(wǎng)站的過(guò)程:要找到這個(gè)網(wǎng)站,必須把有問(wèn)題的進(jìn)程跟該網(wǎng)站的應(yīng)用程序池聯(lián)系起來(lái)。首先設(shè)置任務(wù)管理器的查看方式,加入pid的顯示:
然后再命令行運(yùn)行iisapp -a,可以看到pid跟應(yīng)用程序池的對(duì)應(yīng)關(guān)系:
再去iis中看該應(yīng)用程序池對(duì)應(yīng)的網(wǎng)站,有問(wèn)題的網(wǎng)站就找到了,剩下的就是這個(gè)網(wǎng)站代碼中的問(wèn)題了。
在某位網(wǎng)站管理員的糾纏不休下,我終于無(wú)法忍受,幫他找錯(cuò)誤- - 無(wú)數(shù)次配置iis,網(wǎng)站程序也換了,該升級(jí)的也升級(jí)了,問(wèn)題還是存在,黔驢技窮,把網(wǎng)站下載到本地看看到底怎么回事。當(dāng)我試圖打開(kāi)他的數(shù)據(jù)庫(kù)的時(shí)候,問(wèn)題出現(xiàn)了:
他的數(shù)據(jù)庫(kù)是.asp的擴(kuò)展名,要先修改為.mdb才能打開(kāi),但是當(dāng)我點(diǎn)擊要改名字的時(shí)候,我的電腦沒(méi)有響應(yīng)了~!看來(lái)問(wèn)題在這個(gè)數(shù)據(jù)庫(kù)了。
用命令行rename之后,打開(kāi)數(shù)據(jù)庫(kù),修復(fù),似乎沒(méi)有任何問(wèn)題,但是再改為.asp時(shí),又出現(xiàn)了剛才的問(wèn)題。哈~原來(lái)是.asp的擴(kuò)展名在作怪。
但是我試著將其他的數(shù)據(jù)庫(kù)改為.asp,沒(méi)有問(wèn)題。根本原因不得而知,望知情者告知。
最后,在iis中隨便添加了一個(gè)isapi對(duì)應(yīng)到mdb,造成mdb無(wú)法執(zhí)行,防止下載,將所有的.asp的數(shù)據(jù)庫(kù)改回.mdb,問(wèn)題解決。
1.w3wp.exe,應(yīng)用程序,應(yīng)用程序池之間的關(guān)系
一個(gè)應(yīng)用程序池可以包含多個(gè)應(yīng)用程序,一個(gè)應(yīng)用程序池創(chuàng)建一個(gè)w3wp.exe進(jìn)程.那么我們就不能簡(jiǎn)單的說(shuō)一個(gè)應(yīng)用程序?qū)?yīng)一個(gè)w3wp.exe進(jìn)程了!
其實(shí)是多個(gè)應(yīng)用程序?qū)?yīng)一個(gè)w3wp.exe進(jìn)程的.
2.如何啟動(dòng)和關(guān)閉w3wp.exe這個(gè)進(jìn)程
w3wp.exe這個(gè)進(jìn)程將在你訪問(wèn)www應(yīng)用程序的時(shí)候啟動(dòng).有人就會(huì)這么問(wèn)了:"我啟動(dòng)了一個(gè)web應(yīng)用程序,發(fā)現(xiàn)系統(tǒng)自動(dòng)創(chuàng)建了一個(gè)w3wp.exe進(jìn)程。但我關(guān)閉這個(gè)web應(yīng)用程序后,發(fā)現(xiàn)這個(gè)剛創(chuàng)建的w3wp.exe進(jìn)程還在,請(qǐng)問(wèn)如何關(guān)閉該進(jìn)程。"
這個(gè)進(jìn)程不會(huì)在你關(guān)閉了這個(gè)程序以后,就馬上關(guān)閉的.那是因?yàn)閔ttp是無(wú)連接的訪問(wèn),當(dāng)你關(guān)閉了web網(wǎng)頁(yè),不會(huì)返回相應(yīng)的關(guān)閉信息,所以w3wp.exe這個(gè)進(jìn)程不會(huì)因?yàn)槟汴P(guān)閉了web應(yīng)用程序爾關(guān)閉.
那么如何關(guān)閉這個(gè)進(jìn)程呢?在應(yīng)用程序池的配置中,"空閑超時(shí)"中設(shè)定合適的時(shí)間,系統(tǒng)默認(rèn)的是20分鐘.設(shè)定好指定的時(shí)間,那么在這個(gè)時(shí)間范圍內(nèi)沒(méi)有在訪問(wèn)應(yīng)用程序,那么系統(tǒng)會(huì)自動(dòng)的關(guān)閉w3wp.exe這個(gè)進(jìn)程的.而不需要我們?nèi)藶榈母深A(yù)的.
要是你有這個(gè)精力的話,也可以在windows任務(wù)管理器里面,結(jié)束這個(gè)進(jìn)程的生命(^_^)!
3.如何讓w3wp.exe進(jìn)程長(zhǎng)時(shí)間的運(yùn)行.
w3wp.exe這個(gè)進(jìn)程的默認(rèn)生命是1740分鐘,但依然是在這種默認(rèn)的自然規(guī)律下,w3wp.exe將在自己失業(yè)20分鐘后,被系統(tǒng)直接槍殺.
這樣就可以看出,要想讓w3wp.exe長(zhǎng)時(shí)間的生存,那我們可以通過(guò)”空閑超時(shí)”不作處理來(lái)達(dá)到我們的目的.
這樣可是缺點(diǎn)多多,但是為了達(dá)到個(gè)人的私欲,這又算什么.本來(lái)也不是什么正式的項(xiàng)目.
4.如何降低w3wp.exe占用的內(nèi)存和cpu
結(jié)合網(wǎng)上的諸多建議,主要的解決辦法是:
a.在iis中對(duì)每個(gè)網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置;
b.合理的配置你的應(yīng)用程序池;
相關(guān)文章
Windows?Server?2012?R2服務(wù)器安裝與配置的完整步驟
擁有正確安裝Windows?server?2012?r2的方法可以節(jié)省我們很多的時(shí)間,下面這篇文章主要給大家介紹了關(guān)于Windows?Server?2012?R2服務(wù)器安裝與配置的完整步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07IIS訪問(wèn)網(wǎng)站的用戶過(guò)多解決方法
本地IIS訪問(wèn)網(wǎng)站的用戶過(guò)多解決方法匯總2010-04-04Windows?Server?2016遠(yuǎn)程桌面如何允許多用戶同時(shí)登錄
我們經(jīng)常會(huì)遇到多人同時(shí)登錄操作同一臺(tái)服務(wù)器的需求,有什么好的解決方法呢,下面就一起來(lái)看看吧2022-06-06IIS7.5下的web.config 404配置的一些問(wèn)題
本文介紹一個(gè)關(guān)于IIS環(huán)境下web.config配置的經(jīng)驗(yàn)問(wèn)題。在IIS7.5中添加配置404頁(yè)面時(shí)遇到了一些問(wèn)題與解決方法,需要的朋友可以參考下2016-06-06Centos7啟動(dòng)流程及Systemd中Nginx啟動(dòng)配置
今天小編就為大家分享Centos7啟動(dòng)流程及Systemd中Nginx啟動(dòng)配置,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09win2003 iis 不支持請(qǐng)求(iis iso)的解決方法分析
今天有網(wǎng)友說(shuō),本站提供的文件無(wú)法下載,我看了一下,是iso文件,訪問(wèn)時(shí)提示不支持請(qǐng)求,原來(lái)iis默認(rèn)不支持一些格式的下載,下面是通用的解決思路。2009-10-10Windows域帳戶的好處 域控制器的優(yōu)點(diǎn)介紹
自從進(jìn)入新公司后,就一直用域帳戶,雖然起先一直很排斥XP系統(tǒng)及域帳戶。但經(jīng)過(guò)一段時(shí)間磨合及把域用戶加到本地管理員后。感覺(jué)域帳戶真是越用越好用了2013-05-05