如何解決Linux中CPU使用率高的問題?
譯文【51CTO.com快譯】電腦死機了?還是開始聽到電腦發出很響的CPU風扇噪音?Linux中CPU使用率過高的原因很多,但最常見的原因是運行異常的應用程序。本文介紹了如何在Linux中解決CPU使用率過高的問題。
找出罪魁禍首
運行異常的應用程序連速度最快的處理器都“俯首稱臣”??梢允褂肧ystem Monitor應用程序或終端中的top,找出有問題的那個應用程序。
打開終端,鍵入top,然后按回車鍵。
圖1
默認情況下,所有進程都按照CPU使用率來排序,最耗CPU的進程位于頂部。如果某個應用程序始終位于前五名,CPU使用率明顯高于其余應用程序,那它就是罪魁禍首。
終止或殺死應用程序
top包括支持renice和kill的功能,那樣您可以使用這些工具來改變任何進程的優先級或強制停止它。
應用程序的nice優先級是指與其他運行中的進程相比,允許它使用的CPU資源數量。nice接受的值在+19到-20之間。數值越高,優先級越低。
在top中,按r并輸入有問題的那個應用程序的PID。試著改成“+5”值,如果不管用,重試“+10”、“+15”,最后是最低優先級“+19”。
圖2
如果該應用程序沒有響應,應立即終止它。在top中按k,輸入PID,然后按回車鍵,該應用程序將消失。
更新一切
如果您每次運行應用程序時問題依然存在,更新該應用程序可能會解決問題。
為此,在終端中輸入:
- sudo apt update && sudo apt -y upgrade
圖3
之后,試著再運行有問題的那個應用程序。
刪除并重新安裝應用程序
如果問題沒有解決,有可能是由于程序配置中的錯誤參數。將其重置為原始狀態可能會有所幫助。
先備份配置,以防這可能不是問題的根源,到時候便于恢復。然后,清除有問題的那個應用程序:
- sudo apt purge APP_NAME
圖4
重新安裝應用程序:
- sudo apt update
- sudo apt install APP_NAME
圖5
這會將應用程序重置為原始狀態。
回到以前的版本
如果升級應用程序解決不了問題,可以改而回到以前的版本??梢栽囍导壊⑹褂门f版本,至少直到開發人員修復了應用程序中的錯誤。
要降級應用程序,先通過運行終端并執行以下命令來查看可用版本:
- sudo apt policy APP_NAME
目前安裝的版本旁邊會有三個星號。注意其他可用版本。
降級之前,建議您清除現有版本。這將清除任何與配置有關的問題。
安裝舊版本,方法如下:
- sudo apt install APP_NAME=VERSION
圖6
使用替代應用程序
Linux的優點是,有許多應用程序可執行同樣的操作。因此,如果一個應用程序導致CPU使用率過高,您可以換成替代應用程序。
修復導致CPU使用率過高的核心應用程序
如果大量耗用CPU資源的是核心應用程序(比如systemd或Xorg),會發生什么?
若是systemd,試著禁用電腦上非必需的功能和輔助設備,比如游戲手柄和打印機。
如果設備是游戲手柄、鼠標或鍵盤,您又在運行Ubuntu或兼容的發行版,請在終端中鍵入xinput,查看所有已連接的設備。想禁用其中一個設備,請使用:
- xinput --disable DEVICE_ID
圖7
想重新啟用設備,請在上述命令中將disable換成enable。
至于其他設備,解決辦法稍微復雜一點。首先,您得在終端中輸入lsmod并按回車鍵,查看Linux內核作為模塊加載的所有其他驅動程序。找到有問題的設備對應的驅動程序,并記下名稱。然后,輸入以下內容:
- sudo nano /etc/modprobe.d/blacklist.conf
您剛打開的文檔是啟動過程中不應加載的模塊的黑名單。它可能已經填充了一些條目。移至文件末尾,遵循同樣的語法,將模塊添加到該列表中。您的條目應是這樣:
- blacklist MODULE_NAME
保存文件,重新啟動,但愿現在一切正常。
若是Xorg,試著禁用Window Manager的合成器。雖然合成器將與CPU有關的任務卸載到GPU,但并非總是如此。有時,通過啟用合成支持,您還可以實現許多效果。
有時,GPU的驅動程序也會導致CPU使用率過高。Xorg與英偉達或AMD驅動程序的特定版本并不是很兼容。解決辦法是升級或降級到不同的版本。另外,可以試用GPU驅動程序的開源版本。不過,那些版本沒有同樣的功能集,可能缺少一些功能。
換掉內核
Linux內核很少是CPU使用率過高的原因。不過,如果您到了這一步卻仍未找到解決辦法,不妨試一試。
如官網上所述,要在Ubuntu中安裝流行的Liquorix內核,訪問終端并輸入:
- sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update
圖8
這會將存儲庫添加到Ubuntu的源代碼中。然后,要將內核本身加載上來,請使用:
- sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64
重新啟動以啟用新內核,但愿CPU使用率會回到正常水平。
但愿其中一種解決辦法對您有用。如果沒用,您也可以試著用taskset為應用程序手動分配CPU核心
(https://www.maketecheasier.com/assign-cpu-cores-with-taskset-linux/)。最后,也許是時候從頭開始重新安裝操作系統或改用不同的發行版本了
(https://www.maketecheasier.com/best-linux-distros/)。
原文標題:How to Fix High CPU Usage in Linux,作者:Odysseas Kourafalos
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】