在 Linux 上監控 CPU 和 GPU 溫度

2019-06-02 10:39:00

本篇文章討論了在 Linux 命令列中監控 CPU 和 GPU 溫度的兩種簡單方式。

由於 Steam(包括 Steam Play,即 Proton)和一些其他的發展,GNU/Linux 正在成為越來越多計算機使用者的日常遊戲平台的選擇。也有相當一部分使用者在遇到像視訊編輯或圖形設計等(Kdenlive 和 Blender 是這類應用程式中很好的例子)資源消耗型計算任務時,也會使用 GNU/Linux。

不管你是否是這些使用者中的一員或其他使用者,你也一定想知道你的電腦 CPU 和 GPU 能有多熱(如果你想要超頻的話更會如此)。如果是這樣,那麼繼續讀下去。我們會介紹兩個非常簡單的命令來監控 CPU 和 GPU 溫度。

我的裝置包括一台 Slimbook Kymera 和兩台顯示器(一台 TV 和一台 PC 監視器),使得我可以用一台來玩遊戲,另一台來留意監控溫度。另外,因為我使用 Zorin OS,我會將關注點放在 Ubuntu 和 Ubuntu 的衍生發行版上。

為了監控 CPU 和 GPU 的行為,我們將利用實用的 watch 命令在每幾秒鐘之後動態地得到讀數。

在 Linux 中監控 CPU 溫度

對於 CPU 溫度,我們將結合使用 watchsensors 命令。一篇關於此工具的圖形化使用者介面版本的有趣文章已經在 It’s FOSS 中介紹過了。然而,我們將在此處使用命令列版本:

watch -n 2 sensors

watch 保證了讀數會在每 2 秒鐘更新一次(當然,這個週期值能夠根據你的需要去更改):

Every 2,0s: sensorsiwlwifi-virtual-0Adapter: Virtual devicetemp1:        +39.0°Cacpitz-virtual-0Adapter: Virtual devicetemp1:        +27.8°C  (crit = +119.0°C)temp2:        +29.8°C  (crit = +119.0°C)coretemp-isa-0000Adapter: ISA adapterPackage id 0:  +37.0°C  (high = +82.0°C, crit = +100.0°C)Core 0:        +35.0°C  (high = +82.0°C, crit = +100.0°C)Core 1:        +35.0°C  (high = +82.0°C, crit = +100.0°C)Core 2:        +33.0°C  (high = +82.0°C, crit = +100.0°C)Core 3:        +36.0°C  (high = +82.0°C, crit = +100.0°C)Core 4:        +37.0°C  (high = +82.0°C, crit = +100.0°C)Core 5:        +35.0°C  (high = +82.0°C, crit = +100.0°C)

除此之外,我們還能得到如下資訊:

  • 我們有 5 個核心正在被使用(並且當前的最高溫度為 37.0℃)。
  • 溫度超過 82.0℃ 會被認為是過熱。
  • 超過 100.0℃ 的溫度會被認為是超過臨界值。

根據以上的溫度值我們可以得出結論,我的電腦目前的工作負載非常小。

在 Linux 中監控 GPU 溫度

現在讓我們來看看顯示卡。我從來沒使用過 AMD 的顯示卡,因此我會將重點放在 Nvidia 的顯示卡上。我們需要做的第一件事是從 Ubuntu 的附加驅動 中下載合適的最新驅動。

在 Ubuntu(Zorin 或 Linux Mint 也是相同的)中,進入“軟體和更新 > 附加驅動”選項,選擇最新的可用驅動。另外,你可以新增或啟用顯示卡的官方 ppa(通過命令列或通過“軟體和更新 > 其他軟體”來實現)。安裝驅動程式後,你將可以使用 “Nvidia X Server” 的 GUI 程式以及命令列工具 nvidia-smi(Nvidia 系統管理介面)。因此我們將使用 watchnvidia-smi

watch -n 2 nvidia-smi

與 CPU 的情況一樣,我們會在每兩秒得到一次更新的讀數:

Every 2,0s: nvidia-smiFri Apr 19 20:45:30 2019+-----------------------------------------------------------------------------+| Nvidia-SMI 418.56       Driver Version: 418.56       CUDA Version: 10.1     ||-------------------------------+----------------------+----------------------+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC || Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. ||===============================+======================+======================||   0  GeForce GTX 106...  Off  | 00000000:01:00.0  On |                  N/A ||  0%   54C    P8    10W / 120W |    433MiB /  6077MiB |      4%      Default |+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+| Processes:                                                       GPU Memory ||  GPU       PID   Type   Process name                             Usage      ||=============================================================================||    0      1557      G   /usr/lib/xorg/Xorg                           190MiB ||    0      1820      G   /usr/bin/gnome-shell                         174MiB ||    0      7820      G   ...equest-channel-token=303407235874180773    65MiB |+-----------------------------------------------------------------------------+

從這個表格中我們得到了關於顯示卡的如下資訊:

  • 它正在使用版本號為 418.56 的開源驅動。
  • 顯示卡的當前溫度為 54.0℃,並且風扇的使用量為 0%。
  • 電量的消耗非常低:僅僅 10W。
  • 總量為 6GB 的 vram(視訊隨機存取記憶體),只使用了 433MB。
  • vram 正在被 3 個進程使用,他們的 ID 分別為 1557、1820 和 7820。

大部分這些事實或數值都清晰地表明,我們沒有在玩任何消耗系統資源的遊戲或處理大負載的任務。當我們開始玩遊戲、處理視訊或其他類似任務時,這些值就會開始上升。

結論

即便我們有 GUI 工具,但我還是發現這兩個命令對於實時監控硬體非常的順手。

你將如何去使用它們呢?你可以通過閱讀他們的 man 手冊來學習更多關於這些工具的使用技巧。

你有其他偏愛的工具嗎?在評論裡分享給我們吧 ;)。

玩得開心!