星期四, 11月 16, 2006

XP中CPU佔用率100原因及解決方法

我們在使用Windows XP作業系統的時候,用著用著系統就變慢了,一看“任務管理器”才發現CPU佔用達到100%。這是怎麼回事情呢?遇到病毒了,硬體有問題,還是系統設置有問題,在本文中筆者將從硬體,軟體和病毒三個方面來講解系統資源佔用率為什麼會達到100%。
  經常出現CPU佔用100%的情況,主要問題可能發生在下面的某些方面:

  CPU佔用率高的九種可能

  1、防殺毒軟體造成故障

  由於新版的KV、金山、瑞星都加入了對網頁、插件、郵件的隨機監控,無疑增大了系統負擔。處理方式:基本上沒有合理的處理方式,儘量使用最少的監控服務吧,或者,升級你的硬體配備。

  2、驅動沒有經過認證,造成CPU資源佔用100%

  大量的測試版的驅動在網上氾濫,造成了難以發現的故障原因。 處理方式:尤其是顯卡驅動特別要注意,建議使用微軟認證的或由官方發佈的驅動,並且嚴格核對型號、版本。

  3、病毒、木馬造成

  大量的蠕蟲病毒在系統內部迅速複製,造成CPU佔用資源率據高不下。解決辦法:用可靠的殺毒軟體徹底清理系統記憶體和本地硬碟,並且打開系統設置軟體,察看有無異常啟動的程式。經常性更新升級殺毒軟體和防火牆,加強防毒意識,掌握正確的防殺毒知識。

  4、控制面板—管理工具—服務—RISING REALTIME MONITOR SERVICE點滑鼠右鍵,改為手動。

  5、開始->;運行->;msconfig->;啟動,關閉不必要的啟動項,重啟。

  6、查看“svchost”進程。

  svchost.exe是Windows XP系統的一個核心進程。svchost.exe不單單只出現在Windows XP中,在使用NT內核的Windows系統中都會有svchost.exe的存在。一般在Windows 2000中svchost.exe進程的數目為2個,而在Windows XP中svchost.exe進程的數目就上升到了4個及4個以上。

  7、查看網路連接。主要是網卡。

  8、查看網路連接

  當安裝了Windows XP的電腦做伺服器的時候,收到埠 445 上的連接請求時,它將分配記憶體和少量地調配 CPU資源來為這些連接提供服務。當負荷過重的時候,CPU佔用率可能過高,這是因為在工作項的數目和回應能力之間存在固有的權衡關係。你要確定合適的 MaxWorkItems 設置以提高系統回應能力。如果設置的值不正確,伺服器的響應能力可能會受到影響,或者某個用戶獨佔太多系統資源。

  要解決此問題,我們可以通過修改註冊表來解決:在註冊表編輯器中依次展開[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver ]分支,在右側視窗中新建一個名為“maxworkitems”的DWORD值。然後雙擊該值,在打開的視窗中鍵入下列數值並保存退出:

  如果電腦有512MB以上的記憶體,鍵入“1024”;如果電腦記憶體小於512 MB,鍵入“256”。

  9、看看是不是Windows XP使用滑鼠右鍵引起CPU佔用100%

  前不久的報到說在資源管理器裏面使用滑鼠右鍵會導致CPU資源100%佔用,我們來看看是怎麼回事?

  徵兆:

  在資源管理器裏面,當你右鍵點擊一個目錄或一個檔,你將有可能出現下面所列問題:

  任何檔的拷貝操作在那個時間將有可能停止相應

  網路連接速度將顯著性的降低

  所有的流輸入/輸出操作例如使用Windows Media Player聽音樂將有可能是音樂失真成因:

  當你在資源管理器裏面右鍵點擊一個檔或目錄的時候,當快顯功能表顯示的時候,CPU佔用率將增加到100%,當你關閉快顯功能表的時候才返回正常水平。

  解決方法:

  方法一:關閉“為功能表和工具提示使用過渡效果”

  1、點擊“開始”--“控制面板”

  2、在“控制面板”裏面雙擊“顯示”

  3、在“顯示”屬性裏麵點擊“外觀”標籤頁

  4、在“外觀”標籤頁裏麵點擊“效果”

  5、在“效果”對話方塊裏面,清除“為功能表和工具提示使用過渡效果”前面的核取方塊接著點擊兩次“確定”按鈕。

  方法二:在使用滑鼠右鍵點擊檔或目錄的時候先使用滑鼠左鍵選擇你的目標檔或目錄。然後再使用滑鼠右鍵彈出快顯功能表。

CPU佔用100%解決辦法

  一般情況下CPU占了100%的話我們的電腦總會慢下來,而很多時候我們是可以通過做一點點的改動就可以解決,而不必問那些大蝦了。

  當機器慢下來的時候,首先我們想到的當然是任務管理器了,看看到底是哪個程式占了較搞的比例,如果是某個大程式那還可以原諒,在關閉該程式後只要CPU正常了那就沒問題;如果不是,那你就要看看是什么程式了,當你查不出這個進程是什么的時候就去google或者baidu搜。有時只結束是沒用的,在xp下我們可以結合msconfig裏的啟動項,把一些不用的項給關掉。在2000下可以去下個winpatrol來用。

  一些常用的軟體,比如流覽器佔用了很搞的CPU,那么就要升級該軟體或者乾脆用別的同類軟體代替,有時軟體和系統會有點不相容,當然我們可以試下xp系統下給我們的那個相容項,右鍵點該.exe檔選相容性。

  svchost.exe有時是比較頭痛的,當你看到你的某個svchost.exe佔用很大CPU時你可以去下個aports或者fport來檢查其對應的程式路徑,也就是什么東西在掉用這個svchost.exe,如果不是c:\Windows\system32(xp)或c:\winnt\system32(2000)下的,那就可疑。升級殺毒軟體殺毒吧。

  右擊檔導致100%的CPU佔用我們也會遇到,有時點右鍵停頓可能就是這個問題了。官方的解釋:先點左鍵選中,再右鍵(不是很理解)。非官方:通過在桌面點右鍵-屬性-外觀-效果,取消”為功能表和工具提示使用下列過度效果(U)“來解決。還有某些殺毒軟體對檔的監控也會有所影響,可以關閉殺毒軟體的檔監控;還有就是對網頁,插件,郵件的監控也是同樣的道理。

  一些驅動程式有時也可能出現這樣的現象,最好是選擇微軟認證的或者是官方發佈的驅動來裝,有時可以適當的升級驅動,不過記得最新的不是最好的。

  CPU降溫軟體,由於軟體在運行時會利用所以的CPU空閒時間來進行降溫,但Windows不能分辨普通的CPU佔用和降溫軟體的降溫指令之間的區別,因此CPU始終顯示100%,這個就不必擔心了,不影響正常的系統運行。

  在處理較大的word檔時由於word的拼寫和語法檢查會使得CPU累,只要打開word的工具-選項-拼寫和語法把”檢查拼寫和檢查語法“勾去掉。

  單擊avi視頻檔後CPU佔用率高是因為系統要先掃描該檔,並檢查檔所有部分,並建立索引;解決辦法:右擊保存視頻檔的檔夾-屬性-常規-高級,去掉為了快速搜索,允許索引服務編制該檔夾的索引的勾。

CPU佔用100%案例分析

  1、dllhost進程造成CPU使用率佔用100%

  特徵:伺服器正常CPU消耗應該在75%以下,而且CPU消耗應該是上下起伏的,出現這種問題的伺服器,CPU會突然一直處100%的水平,而且不會下降。查看任務管理器,可以發現是DLLHOST.EXE消耗了所有的CPU空閒時間,管理員在這種情況下,只好重新啟動IIS服務,奇怪的是,重新啟動IIS服務後一切正常,但可能過了一段時間後,問題又再次出現了。

  直接原因:

  有一個或多個ACCESS資料庫在多次讀寫過程中損壞,微軟的MDAC系統在寫入這個損壞的ACCESS檔時,ASP線程處於BLOCK狀態,結果其他線程只能等待,IIS被鎖死了,全部的CPU時間都消耗在DLLHOST中。

  解決辦法:

  安裝“一流資訊監控攔截系統”,使用其中的“首席檔檢查官IIS健康檢查官”軟體,

  啟用”查找鎖死模組”,設置:

  --wblock=yes

  監控的目錄,請指定您的主機的檔所在目錄:

  --wblockdir=d:\test

  監控生成的日誌的檔保存位置在安裝目錄的log目錄中,檔案名為:logblock.htm

  停止IIS,再啟動“首席檔檢查官IIS健康檢查官”,再啟動IIS,“首席檔檢查官IIS健康檢查官”會在logblock.htm中記錄下最後寫入的ACCESS檔的。

  過了一段時間後,當問題出來時,例如CPU會再次一直處100%的水平,可以停止IIS,檢查logblock.htm所記錄的最後的十個檔,注意,最有問題的往往是計數器類的ACCESS文件,例如:”**COUNT.MDB”,”**COUNT.ASP”,可以先把最後十個檔或有所懷疑的檔刪除到回收站中,再啟動IIS,看看問題是否再次出現。我們相信,經過仔細的查找後,您肯定可以找到這個讓您操心了一段時間的檔的。

  找到這個檔後,可以刪除它,或下載下來,用ACCESS2000修復它,問題就解決了。

  2、svchost.exe造成CPU使用率佔用100%

  在win.ini檔中,在[Windows]下面,“run=”和“load=”是可能載入“木馬”程式的途徑,必須仔細留心它們。一般情況下,它們的等號後面什么都沒有,如果發現後面跟有路徑與檔案名不是你熟悉的啟動檔,你的電腦就可能中上“木馬”了。當然你也得看清楚,因為好多“木馬”,如“AOL Trojan木馬”,它把自身偽裝成command.exe檔,如果不注意可能不會發現它不是真正的系統啟動檔。

  在system.ini文件中,在[BOOT]下麵有個“shell=檔案名”。正確的檔案名應該是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程式名”,那么後面跟著的那個程式就是“木馬”程式,就是說你已經中“木馬”了。

  在註冊表中的情況最複雜,通過regedit命令打開註冊表編輯器,在點擊至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目錄下,查看鍵值中有沒有自己不熟悉的自動啟動檔,副檔名為EXE,這裏切記:有的“木馬”程式生成的檔很像系統自身檔,想通過偽裝蒙混過關,如“Acid Battery v1.0木馬”,它將註冊表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 鍵值改為Explorer=“C:\Windows\expiorer.exe”,“木馬”程式與真正的Explorer之間只有“i”與“l”的差別。當然在註冊表中還有很多地方都可以隱藏“木馬”程式,如:“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)”病毒,與早先在西方英文系統下流行“紅色代碼”病毒有點相反,在國際上被稱為VirtualRoot(虛擬目錄)病毒。該蠕蟲病毒利用Microsoft已知的溢出漏洞,通過80埠來傳播到其他的Web頁伺服器上。受感染的機器可由黑客們通過Http Get的請求運行scripts/root.exe來獲得對受感染機器的完全控制權。

  當感染一台伺服器成功了以後,如果受感染的機器是中文的系統後,該程式會休眠2天,別的機器休眠1天。當休眠的時間到了以後,該蠕蟲程式會使得機器重新啟動。該蠕蟲也會檢查機器的月份是否是10月或者年份是否是2002年,如果是,受感染的伺服器也會重新啟動。當Windows NT系統啟動時,NT系統會自動搜索C盤根目錄下的檔explorer.exe,受該網路蠕蟲程式感染的伺服器上的檔explorer.exe也就是該網路蠕蟲程式本身。該檔的大小是8192位元組,VirtualRoot網路蠕蟲程式就是通過該程式來執行的。同時,VirtualRoot網路蠕蟲程式還將cmd.exe的檔從Windows NT的system目錄拷貝到別的目錄,給黑客的入侵敞開了大門。它還會修改系統的註冊表專案,通過該註冊表專案的修改,該蠕蟲程式可以建立虛擬的目錄C或者D,病毒名由此而來。值得一提的是,該網路蠕蟲程式除了檔explorer.exe外,其餘的操作不是基於檔的,而是直接在記憶體中來進行感染、傳播的,這就給捕捉帶來了較大難度。

  ”程式的檔案名,再在整個註冊表中搜索即可。

  我們先看看微軟是怎樣描述svchost.exe的。在微軟知識庫314056中對svchost.exe有如下描述:svchost.exe 是從動態連結程式庫 (DLL) 中運行的服務的通用主機進程名稱。

  其實svchost.exe是Windows XP系統的一個核心進程。svchost.exe不單單只出現在Windows XP中,在使用NT內核的Windows系統中都會有svchost.exe的存在。一般在Windows 2000中svchost.exe進程的數目為2個,而在Windows XP中svchost.exe進程的數目就上升到了4個及4個以上。所以看到系統的進程列表中有幾個svchost.exe不用那麼擔心。