cpupower - CPU 周波数・Governor 制御 チートシート
cpupower は Linux kernel **CPU 周波数スケーリング(cpufreq)とアイドル状態(cpuidle)**subsystems を検査・制御。各コアの実行速度表示、scaling governor 切り替え(例 performance 最大速度、powersave 効率)、周波数ピン・バウンド、深い C-states 検査/無効化でスタートアップレイテンシー低減。マシンから予測可能パフォーマンスまたはラップトップで電力節約を絞り出す標準ツール。
インストール
| プラットフォーム | コマンド |
|---|
| Debian/Ubuntu | sudo apt install linux-cpupower |
| Fedora/RHEL | sudo dnf install kernel-tools |
| Arch Linux | sudo pacman -S cpupower |
| 確認 | cpupower --version |
状態検査
| コマンド | 表示内容 |
|---|
cpupower frequency-info | Governor、現在/最小/最大周波数、driver |
cpupower -c all frequency-info | すべてコアの情報 |
cpupower idle-info | 利用可能 C-states と使用状況 |
cpupower monitor | リアルタイム コア毎周波数/アイドル residency |
watch -n1 'cpupower -c all frequency-info -f' | ライブ周波数 |
# governor と現在速度クイックルック
cpupower frequency-info
Governors
| Governor | 動作 |
|---|
performance | 常に最大周波数で実行 |
powersave | 最低周波数優先(または intel_pstate min) |
ondemand | ロード下で高速スケール |
conservative | 段階的スケール |
schedutil | Scheduler 駆動スケーリング(モダンデフォルト) |
userspace | 手動周波数設定 |
# 利用可能 governors 確認
cpupower frequency-info -g
# すべてコアで performance governor 設定
sudo cpupower frequency-set -g performance
周波数設定
| コマンド | 効果 |
|---|
sudo cpupower frequency-set -g performance | Governor 設定 |
sudo cpupower frequency-set -d 2.0GHz | 最小周波数設定 |
sudo cpupower frequency-set -u 3.5GHz | 最大周波数設定 |
sudo cpupower frequency-set -f 3.0GHz | 固定周波数ピン(userspace gov) |
sudo cpupower -c 0-3 frequency-set -g powersave | コア毎 governor |
アイドル状態(C-states)
深い C-states は電力節約だが開始レイテンシー追加 — レイテンシー機密ワークロードの問題。
| コマンド | 効果 |
|---|
cpupower idle-info | C-states と residency リスト |
sudo cpupower idle-set -d 3 | 特定 C-state 無効化 |
sudo cpupower idle-set -e 3 | C-state 有効化 |
sudo cpupower idle-set -D 10 | レイテンシー > 10µs な C-states 無効化 |
# レイテンシー重要:一貫性ある開始のため深いアイドル状態無効化
sudo cpupower idle-set -D 5
ロード下での監視
# ワークロード時に周波数・アイドル residency がどう応答するか監視
cpupower monitor -i 1
コア毎周波数・各 C-state 時間表示 — governor 変更が実際に効いたか確認に便利。
変更を永続化
cpupower frequency-set はリブート横切り永続化しません。オプション:
| 方法 | 実行方法 |
|---|
| systemd service | systemctl で /etc/default/cpupower で cpupower 有効化 |
/etc/default/cpupower | GOVERNOR="performance" 設定 |
| TuneD | tuned でプロファイル経由 governor 管理 |
| rc.local / unit | ブート時に frequency-set コマンド実行 |
一般的なワークフロー
# ベンチマークボックス:再現可能な数字のため performance でロック
sudo cpupower frequency-set -g performance
cpupower frequency-info -f -c all # 確認
# ラップトップ:バッテリー節約
sudo cpupower frequency-set -g powersave
# レイテンシーチューニング:performance governor + 浅いアイドル
sudo cpupower frequency-set -g performance
sudo cpupower idle-set -D 5
cpupower vs 関連ツール
| ツール | 役割 |
|---|
| cpupower | CPU 周波数/governor + アイドル状態制御 |
| tuned | 全システムプロファイル(governor + その他設定) |
| numactl | NUMA CPU/メモリバインディング |
taskset | プロセス CPU アフィニティ |
turbostat | 詳細 コア毎周波数/電力テレメトリー |
統合全システムアプローチのために、tuned に governor 管理させ。cpupower を直接コア毎制御・検査に使用。
リソース