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