CPU 占用 100% 原因及解決方法(上)轉錄~
電腦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%案例分析
  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不用那么擔心。
  svchost.exe到底是做什么用的呢?
  首先我們要了解一點那就是Windows系統的中的進程分為:獨立進程和共享進程這兩種。由于Windows系統中的服務越來越多,為了節約有限的系統資源微軟把很多的系統服務做成了共享模式。那svchost.exe在這中間是擔任怎樣一個角色呢?
  svchost.exe的工作就是作為這些服務的宿主,即由svchost.exe來啟動這些服務。svchost.exe只是負責為這些服務提供啟動的條件,其自身並不能實現任何服務的功能,也不能為用戶提供任何服務。svchost.exe通過為這些系統服務調用動態鏈接庫(DLL)的方式來啟動系統服務。
  svchost.exe是病毒這種說法是任何產生的呢?
  因為svchost.exe可以作為服務的宿主來啟動服務,所以病毒、木馬的編寫者也挖空心思的要利用svchost.exe的這個特性來迷惑用戶達到入侵、破坏計算机的目的。
  如何才能辨別哪些是正常的svchost.exe進程,而哪些是病毒進程呢?
  svchost.exe的鍵值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如圖1所示。圖1中每個鍵值表示一個獨立的svchost.exe組。
  微軟還為我們提供了一種察看系統正在運行在svchost.exe列表中的服務的方法。以Windows XP為例:在“運行”中輸入:cmd,然后在命令行模式中輸入:tasklist /svc。系統列出如圖2所示的服務列表。圖2中紅框包圍起來的區域就是svchost.exe啟動的服務列表。如果使用的是Windows 2000系統則把前面的“tasklist /svc”命令替換為:“tlist -s”即可。如果你怀疑計算机有可能被病毒感染,svchost.exe的服務出現异常的話通過搜索svchost.exe文件就可以發現异常情況。一般只會找到一個在:“C:\Windows\System32”目錄下的svchost.exe程序。如果你在其它目錄下發現svchost.exe程序的話,那很可能就是中毒了。
  還有一種确認svchost.exe是否中毒的方法是在任務管理器中察看進程的執行路徑。但是由于在Windows系統自帶的任務管理器不能察看進程路徑,所以要使用第三方的進程察看工具。
  上面簡單的介紹了svchost.exe進程的相關情況。總而言之,svchost.exe是一個系統的核心進程,並不是病毒進程。但由于svchost.exe進程的特殊性,所以病毒也會千方百計的入侵svchost.exe。通過察看svchost.exe進程的執行路徑可以确認是否中毒。
  3、Services.exe造成CPU使用率占用100%
  症狀
  在基于 Windows 2000 的計算机上,Services.exe 中的 CPU 使用率可能間歇性地達到100 %,並且計算机可能停止響應(挂起)。出現此問題時,連接到該計算机(如果它是文件服務器或域控制器)的用戶會被斷開連接。您可能還需要重新啟動計算机。如果 Esent.dll 錯誤地處理將文件刷新到磁盤的方式,則會出現此症狀。
  解決方案
  Service Pack 信息
  要解決此問題,請獲取最新的 Microsoft Windows 2000 Service Pack。有關其它信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
  260910 如何獲取最新的 Windows 2000 Service Pack
  修復程序信息
  Microsoft 提供了受支持的修補程序,但該程序只是為了解決本文所介紹的問題。只有計算机遇到本文提到的特定問題時才可應用此修補程序。此修補程序可能還會接受其它一些測試。因此,如果這個問題沒有對您造成嚴重的影響,Microsoft 建議您等待包含此修補程序的下一個 Windows 2000 Service Pack。
  要立即解決此問題,請與“Microsoft 產品支持服務”聯系,以獲取此修補程序。有關“Microsoft 產品支持服務”電話號碼和支持費用信息的完整列表,請訪問 Microsoft Web 站點:
  注意 :特殊情況下,如果 Microsoft 支持專業人員确定某個特定的更新程序能夠解決您的問題,可免收通常情況下收取的電話支持服務費用。對于特定更新程序無法解決的其它支持問題和事項,將正常收取支持費用。
  下表列出了此修補程序的全球版本的文件屬性(或更新的屬性)。這些文件的日期和時間按協調通用時間 (UTC) 列出。查看文件信息時,它將轉換為本地時間。要了解 UTC 與本地時間之間的時差,請使用“控制面板”中的“日期和時間”工具中的 時區 選項卡。
  狀態
  Microsoft 已經确認這是在本文開頭列出的 Microsoft 產品中存在的問題。此問題最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。
  4、正常軟件造成CPU使用率占用100%
  首先,如果是從開机后就發生上述情況直到關机。那么就有可能是由某個隨系統同時登陸的軟件造成的。可以通過運行輸入“msconfig”打開“系統實用配置工具”,進入“啟動”選項卡。接著,依次取消可疑選項前面的對鉤,然后重新啟動電腦。反復測試直到找到造成故障的軟件。或者可以通過一些優化軟件如“優化大師”達到上述目的。另:如果鍵盤內按鍵卡住也可能造成開机就出現上述問題。
  如果是使用電腦途中出項這類問題,可以調出任務管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),進入”進程“選項卡,看”CPU“欄,從里面找到占用資源較高的程序(其中SYSTEM IDLE PROCESS是屬于正常,它的值一般都很高,它的作用是告訴當前你可用的CPU資源是多少,所以它的值越高越好)通過搜索功能找到這個進程屬于哪個軟件。然后,可以通過升級、關閉、卸載這個軟件或者干脆找個同類軟件替換,問題即可得到解決。
  5、病毒、木馬、間諜軟件造成CPU使用率占用100%
  出現CPU占用率100% 的故障經常是因為病毒木馬造成的,比如震蕩波病毒。應該首先更新病毒庫,對電腦進行全机掃描 。接著,在使用反間諜軟件Ad—Aware,檢查是否存在間諜軟件。論壇上有不少朋友都遇到過svchost.exe占用CPU100%,這個往往是中毒的表現。
  svchost.exe Windows中的系統服務是以動態鏈接庫(DLL)的形式實現的,其中一些會把可執行程序指向svchost.exe,由它調用相應服務的動態鏈接庫並加上相應參數來啟動服務。正是因為它的特殊性和重要性,使它更容易成為了一些病毒木馬的宿主。
  6、explorer.exe進程造成CPU使用率占用100%
  在system.ini文件中,在[BOOT]下面有個“shell=文件名”。正确的文件名應該是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那么后面跟著的那個程序就是“木馬”程序,就是說你已經中“木馬”了。
arrow
arrow
    全站熱搜

    lovederfish 發表在 痞客邦 留言(0) 人氣()