昔の Linux kernel は、一定の時間間隔(1000Hz)でタイマ割り込み処理を行っていたので、実行するプロセスが無いアイドル状態であっても、CPU が動作していて電力を消費していました。
定期的なタイマ割り込みを行わない Tickless kernel を各ディストリビュータが採用しだしてアイドル状態の続くCPU は、長い時間スリープする事ができるので、消費電力を削減できるようになりました。powertop は、CPU を頻繁にウェイクアップさせる kernel のコンポーネント、ユーザースペースアプリケーションを特定でき、個別のデバイス、プロセスが消費している電力を予測して表示する事ができます。
目次
powertop のインストール
powertop は、以下のコマンドでインストールします。
// CentOS の場合 $ sudo yum -y install powertop // Ubuntu の場合 $ sudo apt -y install powertop
powertop の実行
実行すると以下のような CUI 画面が表示され、TAB キーを使って画面を切り替えます。ESC キーで終了します。
$ sudo powertop PowerTOP 2.8 Overview Idle stats Frequency stats Device stats Tunables Summary: 709.1 wakeups/second, 18.6 GPU ops/seconds, 0.0 VFS ops/sec and 30.4% CPU use Usage Events/s Category Description 100.0% Device Audio codec hwC0D2: Realtek 100.0% Device Audio codec hwC0D3: Intel 0.8 ms/s 96.1 kWork dbs_timer 16.7 ms/s 71.6 Process compiz 650.4 µs/s 68.7 Process [rcu_sched] 6.2 ms/s 58.8 Process /usr/lib/thunderbird/thunderbird 20.5 ms/s 52.0 Process /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=1 --primordial-pipe-toke 17.7 ms/s 47.1 Process /opt/google/chrome/chrome 9.0 ms/s 47.1 Process /opt/google/chrome/chrome --type=renderer --field-trial-handle=1 --primordial-pipe-token=55D1DD2C8D1FDA1D4CEE917E46783B 112.0 ms/s 1.0 Process [kswapd0] 1.3 ms/s 32.4 Timer tick_sched_timer : : <ESC> Exit | <TAB> / <Shift + TAB> Navigate |
powertop 実行結果の詳細
Overview: 電力を消費しているコンポーネントのリストが表示されます。
Idle stats : CPU の C 状態の使用が表示されます。
C0: 運用中, C1: 一時停止, C2: クロック停止, C3: スリープ, C6: 深いスリープ C7: さらに深いスリープ
Frequency stats : Turbo モード (該当する場合) を含む全プロセッサーおよびコアの P 状態(プロセッサの動作周波数と電圧)の使用が表示されます。
Device Stats: デバイスの電力消費のリストが表示されます。
Tunables: システムの消費電力量を低減させるための提案が表示され。enter キーでオン/オフを切り替えます。
powertop 実行結果をHTML出力
結果を html ファイルに出力する事もできます。
$ sudo powertop --html=index.html --time=seconds