svchost.exe 為什麼會佔用那麼多 CPU?
查了下資料,有人說可能是中毒,但我的電腦經常殺毒並且更新病毒庫,也每天優化。有人說是windows的核心進程,停不掉,可是我什麼都沒幹,它就站了四分之一以上的 CPU?這也太離譜了吧?
更奇怪的是,我在任務管理器中竟然看不到這個進程?!請問:
- svchost.exe的真正作用是什麼?
- svchost.exe為什麼會佔用那麼多CPU?
- 在不更換操作系統不加裝SSD的情況下,怎樣降低svchost.exe佔用CPU的比率,使電腦運行得快一點?
2014.6.21第二次更新
受到諸位的肯定,受寵若驚。本人也是在日常使用中對其有些了解,對這方面較為感興趣而已,因此權當拋磚引玉。如有錯漏,還請指正。
首先解決你在任務管理器中看不到該進程的問題。如下圖所示:
需要選中下方的」顯示所有用戶的進程「才能看到多個svchost.exe。
究其原因,是因為svchost.exe的全名是Windows服務宿主,不是用戶進程,而是用戶名為SYSTEM、LOCAL SERVICE或NETWORK SERVICE的系統進程。
所謂服務,指的是保障系統正常運行的一系列底層與後台任務流程。svchost.exe作為其宿主,通過調用不同的系統模塊,執行不同的命令行來執行不同的任務。可以認為它是一個空殼,通過外部的,模塊化的,分散化的內容來發揮作用。
下面來舉例。通過開始——運行——services.msc可以打開如下圖所示的窗口,即為系統提供的管理工具(家庭版系統中可能不存在該文件):
隨機打開一個,例如下圖所示:注意可執行文件的路徑及其後的參數。這是一個典型的例子。但是並非所有服務都通過svchost.exe來執行。如下圖:
我的結論為:當svchost.exe長時間佔用大量CPU時,一定說明系統出現了問題。
具體的排查方法,可以按照下列步驟進行:- 在任務管理器中找到對應的svchost.exe,如下圖所示:
- 點擊右鍵,選擇「轉到服務」。例如下圖所示:
- 根據服務的必要性與重要性,根據情況選擇結束進程或進行下一步分析。具體分析工具可以選擇百度搜索,也可以手動使用Process Monitor等工具進行佔用分析。具體原因可能多種多樣,無法給出統一的答案,很可能分析半天仍沒有頭緒。這也正是很多情況下,長時間的分析並不如重裝系統來得有效的原因。
- 總而言之,一般來說,問題可能出在以下幾個方面:其一,長期讀取某一個文件,造成死循環,導致CPU佔用率較高。我遇到過Vista下長期讀取hosts導致資源佔用過高的情況。其二,網路資源佔用過大。這也是最常見的原因。這與DNS、網關、區域網狀況等有多方面的關係,不可一概而論。其三,其他問題。其實這部分我說不出來……簡而言之是各種其他千奇百怪的問題,這種情況下,重裝系統是唯一可能的選擇。
- 我們需要記住,解決一切計算機問題的主要原則是:具體問題具體分析。我們無法對問題表現相同的的問題提出一個通用的解決方案,但是,我們可以從多個角度下手,對個別問題作出自己的判斷。
我也遇到類似的問題。svchost一直保持高佔用,電腦啟動很長時間內都卡得沒法動,有時候又是正常的。根據PID查到一大堆服務(如下圖),要怎樣才能繼續挖出到底是哪個服務的問題呢?
windows所有的服務都是svchost在跑呢怎能這麼隨便就說中毒。這個進程幹了本來一百多個進程的事情,我覺得26%也沒什麼好奇怪的。
服務管理嘛…題主把殺毒軟體卸載估計就沒事了
題主這個問題我也遇到過,之前就是由於這個原因更換的系統(很多需要破解的軟體,十分不想換//(ㄒoㄒ)//)。有個很奇怪的現象:每當更換上網方式或無線網路不穩定時,這個進程就很佔據幾乎100%的CPU,電腦卡到爆!(就算不上網,每次開機也是,得大約5-10分鐘才能釋放CPU)求助多名高手,無果。。。最終還是換系統了。。。首先,你需要顯示所用用戶進程,然後你會看到進程中是這樣的:圖中可以看到,有多個svchost進程,佔用很大的內存。(這是目前我電腦的狀態)當時在網上找過很多資料,下面這個最靠譜了,但我的電腦似乎少了Automatic Updates 〒_〒
首先檢查系統服務的狀態。
1. 點「開始」–&>「執行」,輸入「services.msc」後按「確定」。2. 在服務「Automatic Updates」上點二下。//在我的電腦中沒有Automatic Updates此項3. 點選「登入」頁簽,確定登入身分為「本機系統賬戶」且「允許服務與桌面互動」"沒有"被選取。
4. 確認服務已在目前的「硬體設定文件」中被啟用,如果沒有,按下「啟用」按鈕。5. 點選「一般」頁簽,確定「啟動類型」為「自動」,然後按下「啟動」按鈕以啟動服務。6. 對「Background Intelligent Transfer Service (BITS) 」服務重複 2 ~ 5 的步驟。二、接著重新註冊 Windwos Update 的組件。1. 點選「開始」–&>「執行」。2. 輸入「REGSVR32 WUAPI.DLL」後按 Enter。3. 當看到 "DllRegisterServer 在 WUAPI.DLL 成功" 的訊息後按下「確定」。4. 重複上述步驟重新註冊下列組件REGSVR32 WUAUENG.DLLREGSVR32 WUAUENG1.DLL
REGSVR32 ATL.DLLREGSVR32 WUCLTUI.DLLREGSVR32 WUPS.DLLREGSVR32 WUPS2.DLLREGSVR32 WUWEB.DLL 三、最後清除可能已損壞了的 Windows Update 暫存目錄。1. 點「開始」–&>「執行」,輸入「cmd」後按「確定」。 2. 在命令提示字元中鍵入以下指令。(若出現錯誤訊息請先重開機後再報執行一次)net stop WuAuServ2. 點「開始」–&>「執行」,輸入「%windir%」後按「確定」。
3. 找到「SoftwareDistribution」並更名為「SDold」。4. 點「開始」–&>「執行」,輸入「cmd」後按「確定」,並在在命令提示字元中鍵入以下指令。net start WuAuServ 四、大功告成!題主可以試一試此方法,可能某些.DLL載入失敗,下載重新載入即可。樓上沒有人說到點子上, svchost.exe只是一個服務的宿主, 通過他你不知道具體是哪個服務佔用了你的CPU. Windows 7之後有個神器, 叫資源監視器.
通過任務管理器打開 或者 通過小娜搜索打開.然後看看以下圖片:就能知道是哪一個服務佔用大量CPU了. 這是最簡單的一個排查方法. 我發現大部分情況下, 是wuauserv 也就是Windows Update服務佔用大量CPU的.看了幾個回答居然都沒看到正確及正常的解決方法。當然,這個方法很簡單。把自動更新徹底關閉,再重啟一下就沒問題了。徹底禁用windows更新檢查後的svchost.exe資源佔用是這樣子的。原因可能在於,windows在更新系統補丁時會將當前正在運行的系統數據放到內存里,這樣系統就可以愉快得更新了。越是發行日期早的windows系統鏡像在第一次更新補丁的時候svchost.exe進程內存佔用越大。
windows update導致的。
解決方法:找到C:WindowsSoftwareDistributionDataStoreDataStore.edb這個文件,你會看到這個文件很大很大(我的發生問題之前是一個多G),據說正常情況下這個文件大小應該在幾兆。好的,刪掉它(我直接用360粉碎了它)。OK,問題解決。(還不行重啟一下)
不過這個有個缺點:windows無法查看update的更新歷史。無所謂啦~ 反正解決了問題~_____________________________________刪完,直接進入服務把自動的win update 改為手動說一下我遇到的情況和問題3的解決辦法:
我的win7其中一個 svchost.exe 佔用CPU 50%,查了一下,網上各種說法。打開任務管理器,選擇這個佔用高的進程,右鍵選擇轉到服務,會發現進程指向了很多服務,懷疑是windows updater負載高,關閉該服務,CPU使用率立馬降了下去。【打開控制面板,啟動windows update,CPU使用率立馬飈升上來。】為啥都是討論svchost佔用CPU呢,我的電腦沒佔CPU,但是佔用內存從幾百M開始幾十M的增長,就像內存泄露一樣,我32G的內存也扛不住這樣一直增長啊。。。
是不是其它的什麼插件造成的?
我最近剛好遇到這個問題弄了好久才解決,希望下面的答案對你有幫助。但討論的可能只是其中一個原因,具體情況還請具體分析。
我遇到的問題是這樣的WIN7 64位系統,任務管理器中svchost.exe老是在後台載入刷新,導致電腦窗口頻繁失焦,最多的時候有十幾個,挺好的電腦一開機CPU就佔用了20%連瀏覽網頁都變卡了,這種情況是以前從來沒有過的。一開始我太懶了沒太在意,手動結束進程就解決了,但每天開機這麼關一遍太麻煩了,於是在網路上找了好多類似問題也都試過,最後得出我機子的問題是中了一種MpKsl 病毒!
svchost.exe如果個數不多,略微占內存,那是正常的的,系統服務需要佔用內存,如果是CPU,你看看它是一直占這麼多,還會一直載入新的svchost.exe這時候就要懷疑是病毒了。
MpKsl 病毒它的特點是:一旦連接網路就產生很多用戶名為administrator的svchost.exe進程。而且我查看了svchost.exe的文件位置正常,但是在任務管理器中它的PID沒有對應的服務,並且不斷的產生新的svchost.exe,在後台訪問網路,佔用網速,cpu,內存,並在產生新的svchost.exe過程中在後台刷新,使大家電腦窗口頻繁失焦,對打字看網頁都影響很大。
網路上針對也有很多這解決類型的辦法比如:刪註冊表方法、刪文件方法等,但都挺麻煩的,對於像我這種懶惰的人來說,最簡單的辦法還是用360的系統急救箱,打開使用深度查殺直接幫助你無腦幹掉這個病毒,清理病毒留下的痕迹,幾分鐘搞定!
不知道你說的佔用26%是內存還是CPU(最開始說是超過四分之一的內存,後來又說佔了好多CPU)。如果占內存多,那是應該的,系統需要佔用內存呀!如果是CPU,你看看它是一直占這麼多,還是某一會佔這麼多。win在什麼用戶程序都沒有開的情況下,CPU佔用不應該這麼高。你可以看看,是不是系統在更新?
推薦閱讀:
※cpu的nm級越來越小,為什麼不通過增大面積來提高性能?
※CPU的功耗和什麼相關?為什麼一個while(1);就可佔滿CPU的功耗?
※龍芯未來的前景如何?
※cpu那麼多晶體管組成的門電路代表不同的邏輯,那麼輸入的代碼是怎樣找到確定的邏輯的?
TAG:軟體 | MicrosoftWindows | 中央處理器CPU | 計算機 | 進程 |