稼働中のPCやサーバのCPU/GPU温度を監視することは、マシンの状態を把握する上で極めて重要である。CPUなどの精密なパーツは、指定された制限値を超える温度で実行されていると、寿命が極端に短かくなったり、熱暴走を起こして停止したりしてしまう可能性がある。それを防止するには、いち早く冷却機能が正常に動作しているかを確認し、故障の原因を突き止めなければならない。TecMint.comは「4 Useful Tools to Monitor CPU and GPU Temperature in Ubuntu」において、UbuntuにおいてCPUやGPUの温度を監視するために便利な4つのツールのインストール方法を紹介している。以下、そのポイントをまとめてみた。

Glances

GlanceはPythonで記述されたシステム監視ツールである。プロセスやシステムの状態を取得するためのライブラリであるpsutilを利用して作られている。したがって、psutilが動作する環境であればOSやディストリビューションに依存せずに使える点が大きな強みである。

Glanceをインストールするには、Pythonのパッケージ管理ツールであるpip(またはpip3)を利用するのがよい。公式サイトやTecMintの記事ではcurlまたはwgetを利用してBashのインストールスクリプトを実行する方法が最初に紹介されているが、このスクリプトはPython3をデフォルトとする環境では正しく動作しないため、環境に合わせて書き換える必要がある。

pipまたはpip3がインストールされていない場合は、aptを利用してインストールしておこう。

$ sudo apt install python3-pip

pip/pip3が準備できたら、あとはinstallコマンドでインストールできる。pip3でのインストールは次のようなコマンドになる。

$ pip3 install glances
  • pip3を使ったGlancesのインストール例

    pip3を使ったGlancesのインストール例

インストールしたら、「glances」コマンドでGlancesを起動する。

$ grances

起動時の画面ではセンサー情報は表示されていないが、キーボードで[f]キーを押せば画面左下にCPU温度を含むセンサー情報が表示されるようになる。

  • Glancesによるデバイス情報の表示例。画面左下にセンサー情報が表示される

    Glancesによるデバイス情報の表示例。画面左下にセンサー情報が表示される

Glancesでは、コマンドラインで情報を表示するだけでなく、Webサーバーとして起動してWebブラウザから情報を見られるモードも用意されている。Webサーバーモードを使用するにはPythonのbottleモジュールが必要になるため、まだインストールされていない場合はpipを使ってインストールしておこう。

$ sudo pip3 install bottle

Webサーバーモードで起動するには、次のようにglancesコマンドに「-w」オプションを付けて実行する。

$ grances -w

すると、次のように情報にアクセスURLが示される。

  • GlancesをWebサーバーモードで起動

    GlancesをWebサーバーモードで起動

このURLにWebブラウザからアクセスすれば、CPU温度を含むデバイスの各種情報をみることができる。

  • WebブラウザからGlancesにアクセスした様子

    WebブラウザからGlancesにアクセスした様子

そのほか、リモートからソケット通信を利用してセンサー情報を取得するクライアント・サーバーモードなども備えられている。サーバーマシンの状態監視をリモートから行いたい場合は、Glancesは極めて便利なツールである。

Sensors

Glancesは高機能だが、表示される情報量が多いため、単にCPU温度などのセンサー情報を知りたいだけの場合には少々オーバースペックである。もっとシンプルにセンサー情報を取得したいのであれば「Sensors」を使うのがいいだろう。

Sensorsは、aptを利用して次のコマンドでインストールできる。パッケージ名は「lm-sensors」だ。一部のディストリビューションではデフォルトでプリインストールされている場合もある。

$sudo apt-get install lm-sensors
  • Sensorsのインストール

    Sensorsのインストール

なお、SensorsはRHEL(Red Hat Enterprise Linux)やCentOSでも使うことができるが、yumやdnfにおけるパッケージ名は「lm_sensors」となっており、aptと少しだけ異なるので注意が必要。

インストールできたら、次のコマンドでシステム上のすべてのセンサーを検出できる。

$ sudo sensors-detect

途中で何度か、センサーをスキャンするかどうか聞かれるので、「YES」を入力すればセンサーの検出が実行される。

センサーの検出が完了したら、「sensors」コマンドを実行して、CPU/GPU温度や電圧などの情報を確認できる。

$ sensors
  • Sensorsによるセンサー情報の表示

    Sensorsによるセンサー情報の表示

Hardinfo

ハードウェア情報の包括的な分析を行いたい場合は「Hardinfo」が便利だ。Hardinfoは、Linux向けの軽量のシステムプロファイラーおよびベンチマークツールである。システムハードウェアの情報を取得できるだけでなく、HTML形式でレポート作成する機能を備えている点が大きな特徴だ。

Hardinfoはaptを使って次のコマンドでインストールできる。

$ sudo apt install hardinfo
  • Hardinfoのインストール

    Hardinfoのインストール

なお、yumおよびdnf用のパッケージは用意されていないため、RHELやCentOSで使用したい場合にはGitリポジトリからソースコードを取得して自分でビルドする必要がある。具体的な方法はTechMintの次の記事が参考になるだろう。

Hardinfoを使ってコマンドラインでデバイスの情報を確認したい場合には、次のコマンドを実行する。

$ hardinfo -rma devices.so

すると次のように様々なデバイスの情報が表示され、その中にCPU/GPUのセンサー情報も含まれている。

  • Hardinfoによるデバイス情報の表示

    Hardinfoによるデバイス情報の表示

hardinfoコマンドをオプション無しで実行すれば、次のようにHardinfoがGUIモードで起動し、より見やすい形でデバイス情報を確認することができる。CPU/GPU温度は「Sensors」メニューにある。

$ hardinfo
  • HardinfoのGUIモードによるデバイス情報の表示

    HardinfoのGUIモードによるデバイス情報の表示

上部の「Generate Report」ボタンから、ハードウェア情報やベンチマーク結果のレポートを作成することができる。

i7z

「i7z」は、Intel i3、i5、およびi7に最適化されたCPU情報を取得するためのコマンドラインユーティリティである。実クロック数や温度などの情報を表示することができる。CPUに特化した情報を取得したい場合に便利なツールだ。

i7zはaptを使って次のコマンドでインストールできる。

$ sudo apt install i7z
  • i7zのインストール

    i7zのインストール

インストールできたら、「i7z」コマンドで実行する。上のほかのツールと違って、i7Zはroot権限で実行する必要がある。

$ sudo i7z
  • i7zによるCPU情報の表示

    i7zによるCPU情報の表示

なお、yumおよびdnfでは現在はi7zのパッケージが提供されていないため、RHELやCentOSで使用したい場合はGithubリポジトリからソースコードを取得して自分でビルドする必要がある。また、Qtで実装されたGUI版も公開されているが、表示される情報量はコマンドライン版よりも少ない点に注意する必要がある。

まとめ

CPUやGPUの温度が高くなる原因としては、単にマシンに高負荷がかかっている以外に、ファンの故障によって冷却が十分に行えていなかったり、ホコリが堆積して空気の通りが悪くなっていたりすることなどが考えられる。また、マルウェアなどによって意図せずに高い負荷がかけられている可能性もある。ハードウェアを長持ちさせるには、システムの状態を監視して早期に問題を発見し、適切に対処することが重要だ。