Linuxを使っていると「CPUの温度ってどうやって確認するの?」と疑問に思う方は多いです。
とくに自作PCやVPS(仮想専用サーバー)を運用している場合、CPU温度が高くなりすぎるとパフォーマンス低下や最悪の場合ハードウェアの故障にもつながります。
この記事では、LinuxでCPU温度をチェックする基本的な方法から、温度を下げるための対策まで、初心者にもわかりやすく説明します。
LinuxでCPU温度を確認するには?
CPU温度はなぜ重要?
CPUはPCの頭脳です。常に処理を行っているため熱を持ちやすく、一定の温度を超えると自動的にクロックを下げる「サーマルスロットリング」が働き、処理速度が落ちます。
さらに高温が続くとCPUやマザーボードの寿命を縮める原因にもなります。
具体的にはどんな影響があるの?
- パフォーマンス低下:80℃を超えるとクロック数が下がります
- システム不安定:90℃以上で予期しないシャットダウンが起きることも
- ハードウェア破損:100℃以上が続くと部品の劣化が進みます
温度管理がとくに重要なケース
LinuxでCPU温度の監視がとくに重要なのは以下のような場面です:
- 24時間稼働のサーバー運用
- 高負荷な計算処理やコンパイル作業
- 古いハードウェアでの長時間運用
- ファンレス設計のミニPC
だからこそ、LinuxでCPU温度を定期的にチェックすることが大切です。次に、具体的にどんな方法で温度を確認できるのか紹介します。
コマンドでCPU温度を確認する方法
lm-sensorsを使う(基本的な方法)
Linuxではlm-sensors
というパッケージが最も一般的です。これはセンサー情報を取得するツールで、多くのディストリビューションで利用可能です。
インストールと設定の手順
Ubuntu/Debianの場合
sudo apt update
sudo apt install lm-sensors
CentOS/RHELの場合
sudo yum install lm_sensors
# または新しいバージョンでは
sudo dnf install lm_sensors
初期設定を行う
sudo sensors-detect
このコマンドを実行すると、システムのセンサーを自動検出します。途中で質問されたら基本的に「YES」で進めてOKです。
温度を確認する
sensors
実行すると以下のような結果が表示されます:
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +45.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +42.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +44.0°C (high = +80.0°C, crit = +100.0°C)
その他の便利なコマンド
cpustatでリアルタイム監視
watch -n 1 sensors
1秒おきに温度を更新表示します。Ctrl+Cで終了できます。
catコマンドで直接確認
cat /sys/class/thermal/thermal_zone*/temp
この値は1000で割ると摂氏温度になります(例:45000 → 45℃)。
ストレージの温度もチェックしよう
CPU以外にも、SSDやHDDの温度も気になる場合があります。
HDDの温度確認
sudo apt install hddtemp
sudo hddtemp /dev/sda
NVMe SSDの温度確認
sudo apt install nvme-cli
sudo nvme smart-log /dev/nvme0n1
このようにLinuxでは簡単なコマンドでCPUやストレージの温度が確認できます。次は、温度が高すぎた場合にどんな対策ができるのか解説します。
CPU温度を下げる方法
物理的な冷却強化
冷却ファンの見直し
最も効果的なのは冷却ファンの調整です:
- ファン回転数の確認:
pwmconfig
で設定を調整 - ファンの清掃:ほこりが詰まっていないかチェック
- ファンの交換:古いファンは効率が下がっている可能性
CPUグリスの塗り直し
CPUとヒートシンクの間のグリスは時間とともに劣化します:
- 3〜5年に一度は塗り直しを検討
- 適量は米粒大程度
- 塗りすぎは逆効果なので注意
ソフトウェアでの負荷軽減
不要なプロセスを確認・停止
# CPU使用率の高いプロセスを確認
top
# またはより見やすい htop
htop
具体的な軽減例
不要なサービスの停止
# 使っていないサービスを確認
systemctl list-unit-files --state=enabled
# 不要なサービスを停止
sudo systemctl stop サービス名
sudo systemctl disable サービス名
cronジョブの見直し
# 現在のcronジョブを確認
crontab -l
# システム全体のcronも確認
sudo crontab -l
実際の改善例
例えばWebサーバーのテストでApacheやNginxを複数同時に動かしていたり、大量のcronジョブが走っているとCPUに負担がかかります。
- Before:Apache + Nginx + MySQL + 毎分実行のバックアップスクリプト → CPU温度75℃
- After:必要なサービスのみ + バックアップは深夜のみ → CPU温度58℃
CPU電力制御による温度管理
cpufrequtilsで周波数制御
sudo apt install cpufrequtils
# 現在の設定を確認
cpufreq-info
# 省電力モードに設定
sudo cpufreq-set -g powersave
TLPで総合的な電力管理
sudo apt install tlp
sudo systemctl enable tlp
sudo tlp start
冷却ハードの調整とソフト的な負荷軽減、どちらも重要です。最後に、LinuxのCPU温度管理で意外と見落とされがちなポイントを紹介します。
見落としがちな注意点
ノートPCでの特別な注意点
BIOS/UEFI設定の確認
ノートPCではファン制御がBIOSに依存している場合が多いです:
- ファン設定:「静音モード」になっていないかチェック
- 電力管理:「バランス」または「高パフォーマンス」に設定
- 温度しきい値:デフォルトが低すぎる場合は調整を検討
Linux特有のドライバー問題
一部のノートPCでは、Linuxでのファン制御がうまく動作しない場合があります:
# ThinkPadの場合
sudo apt install thinkfan
# ASUSの場合
sudo apt install asus-nb-wmi
仮想環境での温度管理
ゲストOSでの制限
KVMやVirtualBoxなどの仮想マシンでLinuxを動かしている場合、ゲストOS側では正確なCPU温度が取得できないことがあります。
対処法:
- ホスト側のセンサー値を確認する
- 仮想マシンのCPU割り当て数を調整する
- ホスト側でのリソース監視を設定する
コンテナ環境での注意点
DockerやPodmanなどのコンテナ環境では:
- コンテナ内からは直接センサーにアクセスできない
- ホスト側での監視が必須
- リソース制限を適切に設定する
監視の自動化
systemdタイマーで定期チェック
# 温度チェック用スクリプトを作成
sudo nano /usr/local/bin/temp-check.sh
#!/bin/bash
TEMP=$(sensors | grep 'Package id 0' | awk '{print $4}' | sed 's/+//g' | sed 's/°C//g')
if (( $(echo "$TEMP > 70" | bc -l) )); then
echo "Warning: CPU temperature is ${TEMP}°C" | logger
# 必要に応じてメール通知やSlack通知を追加
fi
ログ監視の設定
# ログローテーションも忘れずに
sudo nano /etc/logrotate.d/temperature
まとめ
LinuxでCPU温度を管理するには、以下のポイントが重要です:
基本的な温度監視
- lm-sensorsで定期的な温度チェック
- hddtempやnvme-cliでストレージ温度も確認
- watchコマンドでリアルタイム監視
効果的な冷却対策
- ファンやグリスなどハードウェアの見直し
- 不要なプロセスやサービスの停止
- CPU電力制御による温度調整
見落としがちな重要ポイント
- BIOS設定や仮想環境の制約を確認
- 監視の自動化でトラブルを予防
- 環境に応じた適切な対策の選択
CPU温度はLinux運用で見落としがちな部分ですが、システムの安定性や寿命に大きく影響します。
コマンドで温度を定期的にチェックし、必要があれば冷却やプロセスを見直しましょう。これであなたのLinuxマシンも長く快適に使えるはずです。
コメント