下面介紹導(dǎo)致服務(wù)器CPU利用率占用100%的六種常見問題以及其解決方法。
1、 dllhost進(jìn)程造成CPU使用率占用100%
特征:服務(wù)器正常CPU消耗應(yīng)該在75%以下,而且CPU消耗應(yīng)該是上下起伏的。出現(xiàn)這種問題的服務(wù)器,CPU會(huì)突然一直處100%的水平,而且不會(huì)下降。查看任務(wù)管理器,可以發(fā)現(xiàn)是DLLHOST.EXE消耗了所有的CPU空閑時(shí)間,管理員在這種情況下,只好重新啟動(dòng)IIS服務(wù),奇怪的是,重新啟動(dòng)IIS服務(wù)后一切正常,但可能過了一段時(shí)間后,問題又再次出現(xiàn)了。
直接原因:
有一個(gè)或多個(gè)ACCESS數(shù)據(jù)庫在多次讀寫過程中損壞,微軟的 MDAC 系統(tǒng)在寫入這個(gè)損壞的ACCESS文件時(shí),ASP線程處于BLOCK狀態(tài),結(jié)果其它線程只能等待,IIS被死鎖了,全部的CPU時(shí)間都消耗在DLLHOST中。
解決辦法:
安裝“一流信息監(jiān)控?cái)r截系統(tǒng)”,使用其中的“首席文件檢查官IIS健康檢查官”軟件,
啟用”查找死鎖模塊”,設(shè)置:
--wblock=yes
監(jiān)控的目錄,請(qǐng)指定您的主機(jī)的文件所在目錄:
--wblockdir=d:\test
監(jiān)控生成的日志的文件保存位置在安裝目錄的log目錄中,文件名為:logblock.htm
停止IIS,再啟動(dòng)“首席文件檢查官IIS健康檢查官”,再啟動(dòng)IIS,“首席文件檢查官IIS健康檢查官”會(huì)在logblock.htm中記錄下最后寫入的ACCESS文件的。
過了一段時(shí)間后,當(dāng)問題出來時(shí),例如CPU會(huì)再次一直處100%的水平,可以停止IIS,檢查logblock.htm所記錄的最后的十個(gè)文件,注意,最有問題的往往是計(jì)數(shù)器類的ACCESS文件,例如:”**COUNT. MDB ”,”**COUNT.ASP”,可以先把最后十個(gè)文件或有所懷疑的文件刪除到回收站中,再啟動(dòng)IIS,看看問題是否再次出現(xiàn)。我們相信,經(jīng)過仔細(xì)的查找后,您肯定可以找到這個(gè)讓您操心了一段時(shí)間的文件的。
找到這個(gè)文件后,可以刪除它,或下載下來,用ACCESS2000修復(fù)它,問題就解決了。
2、 svchost.exe造成CPU使用率占用100%
在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加載“木馬”程序的途徑,必須仔細(xì)留心它們。一般情況下,它們的等號(hào)后面什幺都沒有,如果發(fā)現(xiàn)后面跟有路徑與文件名不是你熟悉的啟動(dòng)文件,你的計(jì)算機(jī)就可能中上“木馬”了。當(dāng)然你也得看清楚,因?yàn)楹枚?ldquo;木馬”,如“AOL Trojan木馬”,它把自身偽裝成command.exe文件,如果不注意可能不會(huì)發(fā)現(xiàn)它不是真正的系統(tǒng)啟動(dòng)文件。
在system.ini文件中,在[BOOT]下面有個(gè)“shell=文件名”。正確的文件名應(yīng)該是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟著的那個(gè)程序就是“木馬”程序,就是說你已經(jīng)中“木馬”了。
在注冊(cè)表中的情況最復(fù)雜,通過regedit命令打開注冊(cè)表編輯器,在點(diǎn)擊至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目錄下,查看鍵值中有沒有自己不熟悉的自動(dòng)啟動(dòng)文件,擴(kuò)展名為EXE,這里切記:有的“木馬”程序生成的文件很像系統(tǒng)自身文件,想通過偽裝蒙混過關(guān),如“Acid Battery v1.0木馬”,它將注冊(cè)表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 鍵值改為Explorer=“C:\Windows\expiorer.exe”,“木馬”程序與真正的Explorer之間只有“i”與“l”的差別。當(dāng)然在注冊(cè)表中還有很多地方都可以隱藏“木馬”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目錄下都有可能,最好的辦法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木馬該病毒也稱為“Code Red II(紅色代碼2)”病毒,與早先在西方英文系統(tǒng)下流行“紅色代碼”病毒有點(diǎn)相反,在國際上被稱為VirtualRoot(虛擬目錄)病毒。該蠕蟲病毒利用Microsoft已知的溢出漏洞,通過80端口來傳播到其它的Web頁服務(wù)器上。受感染的機(jī)器可由黑客們通過Http Get的請(qǐng)求運(yùn)行scripts/root.exe來獲得對(duì)受感染機(jī)器的完全控制權(quán)。
當(dāng)感染一臺(tái)服務(wù)器成功了以后,如果受感染的機(jī)器是中文的系統(tǒng)后,該程序會(huì)休眠2天,別的機(jī)器休眠1天。當(dāng)休眠的時(shí)間到了以后,該蠕蟲程序會(huì)使得機(jī)器重新啟動(dòng)。該蠕蟲也會(huì)檢查機(jī)器的月份是否是10月或者年份是否是2002年,如果是,受感染的服務(wù)器也會(huì)重新啟動(dòng)。當(dāng)Windows NT系統(tǒng)啟動(dòng)時(shí),NT系統(tǒng)會(huì)自動(dòng)搜索C盤根目錄下的文件explorer.exe,受該網(wǎng)絡(luò)蠕蟲程序感染的服務(wù)器上的文件explorer.exe也就是該網(wǎng)絡(luò)蠕蟲程序本身。該文件的大小是8192字節(jié),VirtualRoot網(wǎng)絡(luò)蠕蟲程序就是通過該程序來執(zhí)行的。同時(shí),VirtualRoot網(wǎng)絡(luò)蠕蟲程序還將cmd.exe的文件從Windows NT的system目錄拷貝到別的目錄,給黑客的入侵敞開了大門。它還會(huì)修改系統(tǒng)的注冊(cè)表項(xiàng)目,通過該注冊(cè)表項(xiàng)目的修改,該蠕蟲程序可以建立虛擬的目錄C或者D,病毒名由此而來。值得一提的是,該網(wǎng)絡(luò)蠕蟲程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在內(nèi)存中來進(jìn)行感染、傳播的,這就給捕捉帶來了難度。
我們先看看微軟是怎樣描述svchost.exe的。在微軟知識(shí)庫314056中對(duì)svchost.exe有如下描述:svchost.exe 是從動(dòng)態(tài)鏈接庫 (DLL) 中運(yùn)行的服務(wù)的通用主機(jī)進(jìn)程名稱。
其實(shí)svchost.exe是Windows XP系統(tǒng)的一個(gè)核心進(jìn)程。svchost.exe不單單只出現(xiàn)在Windows XP中,在使用NT內(nèi)核的Windows系統(tǒng)中都會(huì)有svchost.exe的存在。一般在Windows 2000中svchost.exe進(jìn)程的數(shù)目為2個(gè),而在Windows XP中svchost.exe進(jìn)程的數(shù)目就上升到了4個(gè)及4個(gè)以上。所以看到系統(tǒng)的進(jìn)程列表中有幾個(gè)svchost.exe不用那幺擔(dān)心。
svchost.exe到底是做什幺用的呢?
首先我們要了解一點(diǎn)那就是Windows系統(tǒng)的中的進(jìn)程分為:獨(dú)立進(jìn)程和共享進(jìn)程這兩種。由于Windows系統(tǒng)中的服務(wù)越來越多,為了節(jié)約有限的系統(tǒng)資源微軟把很多的系統(tǒng)服務(wù)做成了共享模式。那svchost.exe在這中間是擔(dān)任怎樣一個(gè)角色呢?
svchost.exe的工作就是作為這些服務(wù)的宿主,即由svchost.exe來啟動(dòng)這些服務(wù)。svchost.exe只是負(fù)責(zé)為這些服務(wù)提供啟動(dòng)的條件,其自身并不能實(shí)現(xiàn)任何服務(wù)的功能,也不能為用戶提供任何服務(wù)。svchost.exe通過為這些系統(tǒng)服務(wù)調(diào)用動(dòng)態(tài)鏈接庫(DLL)的方式來啟動(dòng)系統(tǒng)服務(wù)。
svchost.exe是病毒這種說法是任何產(chǎn)生的呢?
因?yàn)閟vchost.exe可以作為服務(wù)的宿主來啟動(dòng)服務(wù),所以病毒、木馬的編寫者也挖空心思的要利用svchost.exe的這個(gè)特性來迷惑用戶達(dá)到入侵、破壞計(jì)算機(jī)的目的。
如何才能辨別哪些是正常的svchost.exe進(jìn)程,而哪些是病毒進(jìn)程呢?
svchost.exe的鍵值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如圖1所示。圖1中每個(gè)鍵值表示一個(gè)獨(dú)立的svchost.exe組。
微軟還為我們提供了一種察看系統(tǒng)正在運(yùn)行在svchost.exe列表中的服務(wù)的方法。以Windows XP為例:在“運(yùn)行”中輸入:cmd,然后在命令行模式中輸入:tasklist /svc。系統(tǒng)列出如圖2所示的服務(wù)列表。圖2中紅框包圍起來的區(qū)域就是svchost.exe啟動(dòng)的服務(wù)列表。如果使用的是Windows 2000系統(tǒng)則把前面的“tasklist /svc”命令替換為:“tlist -s”即可。如果你懷疑計(jì)算機(jī)有可能被病毒感染,svchost.exe的服務(wù)出現(xiàn)異常的話通過搜索 svchost.exe文件就可以發(fā)現(xiàn)異常情況。一般只會(huì)找到一個(gè)在:“C:\Windows\System32”目錄下的svchost.exe程序。如果你在其它目錄下發(fā)現(xiàn)svchost.exe程序的話,那很可能就是中毒了。
還有一種確認(rèn)svchost.exe是否中毒的方法是在任務(wù)管理器中察看進(jìn)程的執(zhí)行路徑。但是由于在Windows系統(tǒng)自帶的任務(wù)管理器不能察看進(jìn)程路徑,所以要使用第三方的進(jìn)程察看工具。
上面簡單的介紹了svchost.exe進(jìn)程的相關(guān)情況。總而言之,svchost.exe是一個(gè)系統(tǒng)的核心進(jìn)程,并不是病毒進(jìn)程。但由于svchost.exe進(jìn)程的特殊性,所以病毒也會(huì)千方百計(jì)的入侵svchost.exe。通過察看svchost.exe進(jìn)程的執(zhí)行路徑可以確認(rèn)是否中毒。
3、 Services.exe造成CPU使用率占用100%
癥狀
在基于 Windows 2000 的計(jì)算機(jī)上,Services.exe 中的 CPU 使用率可能間歇性地達(dá)到100 %,并且計(jì)算機(jī)可能停止響應(yīng)(掛起)。出現(xiàn)此問題時(shí),連接到該計(jì)算機(jī)(如果它是文件服務(wù)器或域控制器)的用戶會(huì)被斷開連接。您可能還需要重新啟動(dòng)計(jì)算機(jī)。如果 Esent.dll 錯(cuò)誤地處理將文件刷新到磁盤的方式,則會(huì)出現(xiàn)此癥狀。
解決方案
Service Pack 信息
要解決此問題,請(qǐng)獲取最新的 Microsoft Windows 2000 Service Pack。有關(guān)其它信息,請(qǐng)單擊下面的文章編號(hào),以查看 Microsoft 知識(shí)庫中相應(yīng)的文章:
260910 如何獲取最新的 Windows 2000 Service Pack
修復(fù)程序信息
Microsoft 提供了受支持的修補(bǔ)程序,但該程序只是為了解決本文所介紹的問題。只有計(jì)算機(jī)遇到本文提到的特定問題時(shí)才可應(yīng)用此修補(bǔ)程序。此修補(bǔ)程序可能還會(huì)接受其它一些測試。因此,如果這個(gè)問題沒有對(duì)您造成嚴(yán)重的影響,Microsoft 建議您等待包含此修補(bǔ)程序的下一個(gè) Windows 2000 Service Pack。
要立即解決此問題,請(qǐng)與“Microsoft 產(chǎn)品支持服務(wù)”聯(lián)系,以獲取此修補(bǔ)程序。有關(guān)“Microsoft 產(chǎn)品支持服務(wù)”電話號(hào)碼和支持費(fèi)用信息的完整列表,請(qǐng)?jiān)L問 Microsoft Web 站點(diǎn):
注意 :特殊情況下,如果 Microsoft 支持專業(yè)人員確定某個(gè)特定的更新程序能夠解決您的問題,可免收通常情況下收取的電話支持服務(wù)費(fèi)用。對(duì)于特定更新程序無法解決的其它支持問題和事項(xiàng),將正常收取支持費(fèi)用。
下表列出了此修補(bǔ)程序的全球版本的文件屬性(或更新的屬性)。這些文件的日期和時(shí)間按協(xié)調(diào)通用時(shí)間 (UTC) 列出。查看文件信息時(shí),它將轉(zhuǎn)換為本地時(shí)間。要了解 UTC 與本地時(shí)間之間的時(shí)差,請(qǐng)使用“控制面板”中的“日期和時(shí)間”工具中的 時(shí)區(qū) 選項(xiàng)卡。
狀態(tài)
Microsoft 已經(jīng)確認(rèn)這是在本文開頭列出的 Microsoft 產(chǎn)品中存在的問題。此問題最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。
4、正常軟件造成CPU使用率占用100%
首先,如果是從開機(jī)后就發(fā)生上述情況直到關(guān)機(jī)。那幺就有可能是由某個(gè)隨系統(tǒng)同時(shí)登陸的軟件造成的。可以通過運(yùn)行輸入“msconfig”打開“系統(tǒng)實(shí)用配置工具”,進(jìn)入“啟動(dòng)”選項(xiàng)卡。接著,依次取消可疑選項(xiàng)前面的對(duì)鉤,然后重新啟動(dòng)電腦。反復(fù)測試直到找到造成故障的軟件。或者可以通過一些優(yōu)化軟件如“優(yōu)化大師”達(dá)到上述目的。另:如果鍵盤內(nèi)按鍵卡住也可能造成開機(jī)就出現(xiàn)上述問題。
如果是使用電腦途中出項(xiàng)這類問題,可以調(diào)出任務(wù)管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),進(jìn)入”進(jìn)程“選項(xiàng)卡,看”CPU“欄,從里面找到占用資源較高的程序(其中SYSTEM IDLE PROCESS是屬于正常,它的值一般都很高,它的作用是告訴當(dāng)前你可用的CPU資源是多少,所以它的值越高越好)通過搜索功能找到這個(gè)進(jìn)程屬于哪個(gè)軟件。然后,可以通過升級(jí)、關(guān)閉、卸載這個(gè)軟件或者干脆找個(gè)同類軟件替換,問題即可得到解決。
5、病毒、木馬、間諜軟件造成CPU使用率占用100%
出現(xiàn)CPU占用率100% 的故障經(jīng)常是因?yàn)椴《灸抉R造成的,比如震蕩波病毒。應(yīng)該首先更新病毒庫,對(duì)電腦進(jìn)行全機(jī)掃描 。接著,在使用反間諜軟件Ad—Aware,檢查是否存在間諜軟件。論壇上有不少朋友都遇到過svchost.exe占用CPU100%,這個(gè)往往是中毒的表現(xiàn)。
svchost.exe Windows中的系統(tǒng)服務(wù)是以動(dòng)態(tài)鏈接庫(DLL)的形式實(shí)現(xiàn)的,其中一些會(huì)把可執(zhí)行程序指向svchost.exe,由它調(diào)用相應(yīng)服務(wù)的動(dòng)態(tài)鏈接庫并加上相應(yīng)參數(shù)來啟動(dòng)服務(wù)。正是因?yàn)樗奶厥庑院椭匾裕顾菀壮蔀榱艘恍┎《灸抉R的宿主。
6、 explorer.exe進(jìn)程造成CPU使用率占用100%
在system.ini文件中,在[BOOT]下面有個(gè)“shell=文件名”。正確的文件名應(yīng)該是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟著的那個(gè)程序就是“木馬”程序,就是說你已經(jīng)中“木馬”了。