原标題:如何解決Linux中CPU使用率高的問題?
電腦當機了?還是開始聽到電腦發出很響的CPU風扇噪音?Linux中CPU使用率過高的原因很多,但最常見的原因是運作異常的應用程式。本文介紹了如何在Linux中解決CPU使用率過高的問題。
找出罪魁禍首
運作異常的應用程式連速度最快的處理器都“俯首稱臣”。可以使用System Monitor應用程式或終端中的top,找出有問題的那個應用程式。
打開終端,鍵入top,然後按Enter鍵。
圖1
預設情況下,所有程序都按照CPU使用率來排序,最耗CPU的程序位于頂部。如果某個應用程式始終位于前五名,CPU使用率明顯高于其餘應用程式,那它就是罪魁禍首。
終止或殺死應用程式
top包括支援renice和kill的功能,那樣您可以使用這些工具來改變任何程序的優先級或強制停止它。
應用程式的nice優先級是指與其他運作中的程序相比,允許它使用的CPU資源數量。nice接受的值在+19到-20之間。數值越高,優先級越低。
在top中,按r并輸入有問題的那個應用程式的PID。試着改成“+5”值,如果不管用,重試“+10”、“+15”,最後是最低優先級“+19”。
圖2
如果該應用程式沒有響應,應立即終止它。在top中按k,輸入PID,然後按Enter鍵,該應用程式将消失。
更新一切
如果您每次運作應用程式時問題依然存在,更新該應用程式可能會解決問題。
為此,在終端中輸入:
sudo apt update && sudo apt -y upgrade
圖3
之後,試着再運作有問題的那個應用程式。
删除并重新安裝應用程式
如果問題沒有解決,有可能是由于程式配置中的錯誤參數。将其重置為原始狀态可能會有所幫助。
先備份配置,以防這可能不是問題的根源,到時候便于恢複。然後,清除有問題的那個應用程式:
sudo apt purge APP_NAME
圖4
重新安裝應用程式:
sudo apt update
sudo apt install APP_NAME
圖5
這會将應用程式重置為原始狀态。
回到以前的版本
如果更新應用程式解決不了問題,可以改而回到以前的版本。可以試着降級并使用舊版本,至少直到開發人員修複了應用程式中的錯誤。
要降級應用程式,先通過運作終端并執行以下指令來檢視可用版本:
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并按Enter鍵,檢視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/)。最後,也許是時候從頭開始重新安裝作業系統或改用不同的發行版本了傳回搜狐,檢視更多
責任編輯: