服(fú)務器CPU利用率100%的常見解決方法
下麵介紹導致服務器CPU利用率占用100%的六種常(cháng)見(jiàn)問題以及其解決方法。
1、dllhost進程造(zào)成CPU使用率占用100%
特征:服務器正常CPU消耗應該在75%以下,而且CPU消耗應該是上下起伏的。出現這種問題(tí)的服務器(qì),CPU會突然一直處100%的水平,而且不會下降。查看任(rèn)務管理器(qì),可以發(fā)現是DLLHOST.EXE消耗了所有的(de)CPU空閑(xián)時間,管(guǎn)理員在這種情(qíng)況下,隻好重(chóng)新啟動IIS服務,奇怪的是(shì),重新(xīn)啟(qǐ)動IIS服務後(hòu)一切正常,但可能過了一段時間後,問題又再次(cì)出(chū)現了(le)。
直接原(yuán)因:
有一個或多個(gè)ACCESS數據庫在(zài)多次(cì)讀(dú)寫過程(chéng)中損壞(huài),微軟(ruǎn)的 MDAC 係(xì)統在(zài)寫入這個損(sǔn)壞的ACCESS文件時(shí),ASP線程(chéng)處於BLOCK狀態,結(jié)果其它線程(chéng)隻能等(děng)待,IIS被死鎖了,全部的CPU時間都消(xiāo)耗(hào)在DLLHOST中。
解(jiě)決辦(bàn)法:
安(ān)裝“一流信息監控(kòng)攔截係統”,使用(yòng)其中的“首(shǒu)席文件檢查官IIS健康檢查(chá)官(guān)”軟件,
啟用”查找死(sǐ)鎖模(mó)塊(kuài)”,設置:
--wblock=yes
監控的目(mù)錄(lù),請指定您的主機的文件所在(zài)目錄:
--wblockdir=d:\test
監控生成的日誌的文(wén)件保存(cún)位置(zhì)在安裝目錄的log目錄中,文(wén)件名(míng)為:logblock.htm
停(tíng)止(zhǐ)IIS,再(zài)啟動(dòng)“首席文件檢查(chá)官IIS健康檢查官”,再啟動IIS,“首席(xí)文件檢查官IIS健康檢查官”會在logblock.htm中記(jì)錄(lù)下最後寫入的ACCESS文件的。
過了一(yī)段時間後,當問題出來(lái)時,例如CPU會(huì)再(zài)次(cì)一直處100%的(de)水平,可以(yǐ)停止IIS,檢查logblock.htm所記(jì)錄的最後的十個文件,注意,最有問題(tí)的往往是(shì)計數器類的ACCESS文件,例如:”**COUNT. MDB ”,”**COUNT.ASP”,可(kě)以先(xiān)把最後十個文件或有所(suǒ)懷疑的文件刪除(chú)到(dào)回收站(zhàn)中,再啟(qǐ)動IIS,看看問題是否再次出(chū)現。我們相信,經過仔細(xì)的查找(zhǎo)後,您肯(kěn)定可(kě)以找(zhǎo)到這個(gè)讓您(nín)操心(xīn)了一(yī)段時間的文件的。
找到這個文件後,可以刪(shān)除它,或下載下來(lái),用ACCESS2000修複它,問題就解決了(le)。
2、svchost.exe造成CPU使用率(lǜ)占用100%
在win.ini文件中,在[Windows]下麵,“run=”和(hé)“load=”是(shì)可能加(jiā)載“木馬”程序(xù)的(de)途徑,必須仔細(xì)留心(xīn)它們。一(yī)般情(qíng)況下,它們的(de)等(děng)號後麵什幺都沒有,如果(guǒ)發現(xiàn)後麵(miàn)跟有路徑(jìng)與(yǔ)文件名不是你熟悉(xī)的(de)啟動文件,你的計算機就(jiù)可能中上“木馬”了。當然你也得看清楚,因為好多“木馬”,如“AOL Trojan木馬”,它把自身偽裝成command.exe文件,如(rú)果(guǒ)不(bú)注意可能不會發現它不是真正的係統(tǒng)啟動文件。
在system.ini文件(jiàn)中,在(zài)[BOOT]下麵有個“shell=文件(jiàn)名”。正確的文件(jiàn)名應該是“explorer.exe”,如果不是(shì)“explorer.exe”,而是(shì)“shell= explorer.exe 程序名”,那(nà)幺後(hòu)麵跟(gēn)著的那個程序(xù)就是“木(mù)馬”程序,就是說你已經中“木馬(mǎ)”了(le)。
在注冊(cè)表中(zhōng)的(de)情(qíng)況(kuàng)最複雜,通過regedit命令(lìng)打開注冊(cè)表編輯(jí)器,在點(diǎn)擊至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目錄(lù)下,查看鍵(jiàn)值中有沒(méi)有自己不熟(shú)悉的自動啟動文件,擴展名為(wéi)EXE,這裏(lǐ)切記:有的“木馬(mǎ)”程序生(shēng)成(chéng)的文件很像係統自(zì)身文件,想通(tōng)過偽裝蒙混過關,如(rú)“Acid Battery v1.0木馬”,它將注冊表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 鍵值(zhí)改為Explorer=“C:\Windows\expiorer.exe”,“木馬”程(chéng)序與真(zhēn)正的Explorer之(zhī)間隻有“i”與(yǔ)“l”的(de)差(chà)別。當然在注冊(cè)表(biǎo)中還有很(hěn)多地方都可以隱藏(cáng)“木馬”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的(de)目錄下(xià)都有可能,最(zuì)好的辦法(fǎ)就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木馬該病毒也稱為“Code Red II(紅色代碼(mǎ)2)”病毒,與早先在西(xī)方英文係統下流(liú)行“紅色代碼”病毒有(yǒu)點相反,在國際上被稱為VirtualRoot(虛擬目錄)病(bìng)毒(dú)。該(gāi)蠕蟲病毒利用Microsoft已知的溢出漏洞,通(tōng)過80端(duān)口來(lái)傳播到其它的Web頁服務(wù)器上。受(shòu)感染的機器可由黑客(kè)們(men)通過Http Get的請求運行scripts/root.exe來獲得對(duì)受(shòu)感(gǎn)染機器(qì)的完全控(kòng)製權。
當感染(rǎn)一台服務(wù)器成功了以後,如果受感染的機器是中文(wén)的係統(tǒng)後,該(gāi)程序會休眠2天(tiān),別(bié)的機器休眠1天。當休眠(mián)的(de)時(shí)間到了(le)以後,該蠕蟲程序會使得機器重新啟動(dòng)。該蠕蟲也會檢查機(jī)器的月份是否是10月或者(zhě)年份是否是(shì)2002年(nián),如果是,受感染的服務器也會重新啟動(dòng)。當Windows NT係統啟動時,NT係統會自動搜索C盤(pán)根目錄下的文件(jiàn)explorer.exe,受該(gāi)網絡蠕(rú)蟲程序感染的服務器上的文(wén)件explorer.exe也就是該網絡蠕蟲程(chéng)序本身。該文件的大小是8192字節(jiē),VirtualRoot網絡蠕蟲程(chéng)序就是通過(guò)該程序來執(zhí)行的。同時(shí),VirtualRoot網絡蠕(rú)蟲(chóng)程序還將cmd.exe的文件從Windows NT的system目錄拷貝到別的目錄,給(gěi)黑客的入(rù)侵敞(chǎng)開了(le)大(dà)門(mén)。它還(hái)會修改係(xì)統的注冊表(biǎo)項目,通過該注冊表項目(mù)的(de)修改(gǎi),該蠕(rú)蟲程序(xù)可以建立虛擬的目(mù)錄C或者D,病毒名由此而來。值得一提(tí)的是,該(gāi)網絡蠕蟲程序除(chú)了文(wén)件explorer.exe外(wài),其餘(yú)的(de)操作不是(shì)基於文件的,而是直(zhí)接在內存(cún)中來進行感染、傳(chuán)播的,這就給捕捉帶來了難(nán)度。
我們先(xiān)看看微軟(ruǎn)是怎樣描述svchost.exe的。在(zài)微軟(ruǎn)知識庫314056中對(duì)svchost.exe有如下描述:svchost.exe 是從動態鏈(liàn)接庫 (DLL) 中運(yùn)行的服務的通用主機(jī)進程名稱。
其實svchost.exe是(shì)Windows XP係統的一個(gè)核心(xīn)進程。svchost.exe不單單隻出現在Windows XP中(zhōng),在使用NT內(nèi)核的Windows係統(tǒng)中都會有(yǒu)svchost.exe的存在。一般在Windows 2000中svchost.exe進程的(de)數目為(wéi)2個,而在Windows XP中svchost.exe進程的數目就(jiù)上升到了4個及4個以(yǐ)上。所以看(kàn)到係統的進程列表中(zhōng)有幾個svchost.exe不用那幺擔心。
svchost.exe到底是做(zuò)什幺用的呢?
首先我們(men)要了解(jiě)一(yī)點(diǎn)那就是Windows係統的中的進(jìn)程分為:獨立進程和共享進程這(zhè)兩種(zhǒng)。由於Windows係統中的服務越來越(yuè)多,為了節約有限的係統資源(yuán)微(wēi)軟把(bǎ)很(hěn)多(duō)的(de)係統(tǒng)服務(wù)做(zuò)成(chéng)了共享模式。那svchost.exe在這中間是(shì)擔任怎樣一個角色(sè)呢?
svchost.exe的工作就是作為這些服務(wù)的宿(xiǔ)主,即(jí)由svchost.exe來啟動這些服務。svchost.exe隻是負責(zé)為這些服務提供啟動的條件,其(qí)自身並(bìng)不能實現任何服務的功能,也不能為用戶提供任何服務(wù)。svchost.exe通過為(wéi)這些(xiē)係統服(fú)務調(diào)用(yòng)動(dòng)態鏈(liàn)接庫(kù)(DLL)的方(fāng)式(shì)來(lái)啟動係統服務。
svchost.exe是病毒這種說法是(shì)任(rèn)何產(chǎn)生的(de)呢?
因為svchost.exe可以(yǐ)作為(wéi)服務的宿主來啟動服務,所(suǒ)以病毒、木馬(mǎ)的(de)編寫(xiě)者也挖(wā)空(kōng)心(xīn)思的要利用svchost.exe的這(zhè)個特性來迷惑用戶達(dá)到入侵、破壞計算機的目的(de)。
如何才能辨別哪些是(shì)正常(cháng)的(de)svchost.exe進程,而哪些(xiē)是病(bìng)毒進程呢?
svchost.exe的鍵(jiàn)值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如圖1所示。圖1中每個鍵值(zhí)表示一個獨立的svchost.exe組。
微軟還為我們提供了一種(zhǒng)察看係(xì)統(tǒng)正在運行(háng)在svchost.exe列表中的服務的方法(fǎ)。以Windows XP為例:在“運行(háng)”中(zhōng)輸(shū)入:cmd,然後在命(mìng)令行模式中輸入(rù):tasklist /svc。係統列出如圖2所(suǒ)示的服(fú)務列表。圖(tú)2中紅框包圍起來的區域就是(shì)svchost.exe啟動的服務列表。如(rú)果使用(yòng)的是Windows 2000係統則把前麵的“tasklist /svc”命令替換(huàn)為:“tlist -s”即可。如果你懷疑(yí)計算機有可能被病毒感染,svchost.exe的服務出現異常的話通過搜索 svchost.exe文件就可以發現異常情況(kuàng)。一般隻會(huì)找到(dào)一個在:“C:\Windows\System32”目錄下的(de)svchost.exe程序。如果你在其它目錄(lù)下發現svchost.exe程序的話,那很可能(néng)就是中毒了。
還有一種(zhǒng)確認svchost.exe是否中毒的方法是在(zài)任務管理器中察看進(jìn)程的執行路徑。但(dàn)是由於在Windows係統(tǒng)自帶的任務管理器不能察看進程路徑,所以要使用第三方的進程察看工具。
上麵簡單的介紹了svchost.exe進程的相關情況。總而言之,svchost.exe是一(yī)個係統的核心進程,並不是(shì)病毒進(jìn)程。但由於svchost.exe進程的特殊性,所以病毒也會千方百計的(de)入侵(qīn)svchost.exe。通過察(chá)看(kàn)svchost.exe進程的執行路(lù)徑(jìng)可以(yǐ)確(què)認是否中(zhōng)毒。
3、Services.exe造(zào)成(chéng)CPU使用率(lǜ)占用100%
症狀
在基於(yú) Windows 2000 的計(jì)算機上,Services.exe 中的 CPU 使用率可能間歇性(xìng)地(dì)達到100 %,並且(qiě)計算機可能停止響應(掛起)。出現(xiàn)此問(wèn)題(tí)時,連接到(dào)該(gāi)計算機(如(rú)果它是文件服(fú)務器或域控製器)的用戶會被斷開(kāi)連接。您可(kě)能還需要重新(xīn)啟動計算機。如果 Esent.dll 錯誤地處理將文件刷新到磁盤的(de)方式(shì),則會出現此症狀。
解決(jué)方案
Service Pack 信息
要解決此問題,請獲(huò)取最新的 Microsoft Windows 2000 Service Pack。有關其它(tā)信息,請單擊下麵的文章編號(hào),以查看 Microsoft 知識庫中(zhōng)相應的文章:
260910 如何(hé)獲取最(zuì)新的 Windows 2000 Service Pack
修複程序信息
Microsoft 提(tí)供了受支持(chí)的(de)修補(bǔ)程序,但該程序隻是為了解決本文所(suǒ)介紹的問題。隻有(yǒu)計算(suàn)機遇(yù)到本文提到的特定問題(tí)時才可應用(yòng)此修補程(chéng)序(xù)。此修(xiū)補(bǔ)程(chéng)序(xù)可能還會接(jiē)受其它(tā)一些測試。因此,如果這個問題沒有對您造(zào)成嚴重的影響,Microsoft 建議(yì)您(nín)等(děng)待包含此修補程序的下一個
關鍵(jiàn)詞:服務器CPU利用率100%解(jiě)決方法
閱讀(dú)本(běn)文後您有什麽(me)感想(xiǎng)? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0