CPU(中央處理器, Central Processing Unit)是電腦核心的組成元件,也可以說是電腦的心臟,大部分的運算功能都需要透過CPU來處理。在相同的CPU架構下,CPU的核心(Core)數量和頻率是判斷效能的主要的依據,核心數量愈多、頻率愈高,效能會愈好,當然產生出來的熱也會愈多。CPU的溫度一高,通常會自動降頻來降溫,一旦降頻,效能也會跟著下降,所以CPU的溫度偶爾也需要注意一下才行。Windows系統上有許多查看CPU資訊的工具可以使用,但在Linux系統下該如何知道CPU的這些資訊呢?



查看CPU型號與其他資訊

大部份內建桌面環境(Desktop Environment)的Linux發行版(Linux distribution)會提供圖形化介面的系統監控工具,如MATE桌面環境,有查看CPU型號和即時監看CPU、記憶體和網路使用量的工具。

桌面環境提供的圖形化系統監控工具可能無法全面地顯示出CPU資訊,如上圖這款工具就無法知道CPU目前的運行頻率以及溫度。況且在有些情況下,並不是使用桌面環境來操控Linux系統,此時就不能透過圖形化系統監控的軟體來查看CPU資訊。所以,最好的辦法就是學會如何在終端機下使用簡單的指令來獲取CPU資訊。

cpuinfo

Linux系統會將部分CPU的資訊即時地存在於記憶體中,對應的檔案路徑在/proc/cpuinfo,可以使用以下指令來查看這個檔案路徑所儲存的內容:

cat /proc/cpuinfo

接著會將CPU所有核心(包含虛擬核心)的資訊個別列出,包含核心號碼、型號、頻率(即時運行頻率)和快取大小。

lscpu

lscpu可以取得CPU的架構(x86, x86_64...等等)、核心數量、執行緒數量、頻率(從不同核心的運行頻率中挑選最大的來顯示)和快取大小。使用方法很簡單,直接在終端機輸入以下指令即可:

lscpu

查看CPU的運行頻率

CPU雖然都有個標準的工作頻率,但它其實不一定會以固定的頻率來工作,而可能會根據負載程度或是溫度的不同,來自動調節其工作時使用的頻率,以達到省電降溫又不失效能的目的。若使用者發覺自己的電腦效能似乎不如預期,有可能是CPU的頻率因為某些原因而無法提升。雖然上段提到的「cpuinfo」和lscpu都可以看到CPU的頻率,但其中的cpuinfo因為顯示出來的資訊量太多,看起來不是很直觀,所以可以搭配grep指令和管線(pipe)用法來抓出想要看的CPU頻率部分即可。由於catlsXXX類的指令只會抓取一次指令執行時當下的資訊,所以如果想要連續抓取,可以配合watch指令,來指定每隔幾秒自動取得CPU的頻率資訊,會方便很多。

cpuinfo

透過cpuinfo可以抓取各個核心的運行頻率,指令如下:

cat /proc/cpuinfo | grep MHz

如果想要每秒自動取得目前的CPU頻率,可以輸入以下指令:

watch -n 1 "cat /proc/cpuinfo | grep MHz"

lscpu

透過lscpu可以抓取每個核心中最大的運行頻率,如果想要每秒自動取得目前的CPU頻率,指令如下:

watch -n 1 "lscpu"

當然,lscpu也是可以搭配grep一起使用,這裡就不再提了。

查看CPU的溫度

CPU的溫度會影響到CPU的效能、穩定性和壽命。CPU溫度建議不要超過攝氏90度,避免過熱降頻,甚至當機。在Linux上如果要查看硬體的溫度,可以安裝lm-sensors套件。

基於Debian的Linux發行板,可以直接使用apt來安裝lm-sensors,指令如下:

sudo apt install lm-sensors

接著使用sensors-detect指令設定要偵測的感測器。在這裡可以配合yes指令和管線來快速設定成偵測所有感測器,指令如下:

yes | sudo sensors-detect

設定完要偵測的感測器之後,以後就可以直接使用以下指令來查看電腦硬體的溫度了!

sensors

如上圖,可以看到CPU的兩顆核心(Core 0, Core 1)溫度分別是48.0和51.0度。sensors只能顯示它有偵測到的感測器資訊,因此在不同硬體規格上的電腦執行sensors指令所顯示出來的資訊量會有一些差異。