2.2. PowerTOP

Red Hat Enterprise Linux 6 ではティックレスカーネル (「Tickless Kernel」 を参照) を採用することで、CPU がより頻繁にアイドル状態に入るようになり、電力消費量が抑えられるため、電力管理が向上しています。新しいツールとなる PowerTOP は、CPU を頻繁にウェイクアップさせるカーネルとユーザースペースのアプリケーションの特定コンポーネントを識別します。PowerTOP は、「ユーザースペースの最適化」 に説明されている監査を行う開発段階で使用されていました。それにより、このリリースで多くのアプリケーションのチューニングが行われ、不必要に CPU がウェイクアップする率が約 10分の1に低下しました。
Red Hat Enterprise Linux 6 には PowerTOP のバージョン 2.x が装備されています。これは、1.x コードベースの完全な書き換えです。これはより明確なタブベースのユーザーインターフェイス機能があり、カーネルの "perf" インフラストラクチャーを徹底的に使用してより正確なデータを提供します。システムデバイスの電力動作が追跡され、明確に表示されることで、問題を迅速に指摘することが可能です。2.x コードベースにはより実験的に、電力予測エンジンが含まれています。これは、個別のデバイスおよびプロセスが消費している電力を示すことができます。図2.1「実行中の PowerTOP」 を参照してください。
PowerTOP をインストールするには、root で以下のコマンドを実行します。
yum install powertop
PowerTOP を実行するには、root で以下のコマンドを実行します。
powertop
PowerTOP はシステム全体の電力使用量の予測を提供し、各プロセス、デバイス、カーネル作業、タイマー、割り込みハンドラーの電力使用量を表示することができます。このタスク中は、ノート PC をバッテリー電源で稼働してください。電力予測エンジンを調整するには、root で以下のコマンドを実行します。
powertop --calibrate
調整には時間がかかります。このプロセスでは様々なテストが実行され、輝度レベルおよびスイッチデバイスのオンとオフが繰り返されます。調整中にはマシンに触れないでください。調整プロセスが終わると、PowerTOP が正常に開始されます。データ収集をおよそ 1 時間実行させます。十分なデータが収集されると、最初のコラムに電力予測の数字が表示されます。
ノート PC でこのコマンドを実行する場合は、バッテリー電源で稼働することで利用可能なデータすべてが提供されます。
PowerTOP は実行中にシステムから統計数字を収集します。Overview タブでは、CPU にウェイクアップを最も頻繁に送信するコンポーネントまたは最も電力を消費しているコンポーネントのリストが表示されます (図2.1「実行中の PowerTOP」 を参照)。その横のコラムでは、電力消費予測、リソースの使用方法、1 秒あたりのウェイクアップ、プロセスやデバイス、タイマーなどコンポーネントの分類、およびコンポーネントの説明が表示されます。1 秒あたりのウェイクアップは、サービスまたはカーネルのデバイスおよびドライバーのパフォーマンスの効率性を示します。ウェイクアップが少ないと消費電力も少ないことになります。コンポーネントは、電力使用量の最適化がさらに実行可能な度合いで並んでいます。
ドライバーコンポーネントのチューニングは通常、カーネルの変更を必要とし、これは本ガイドの対象外となります。しかし、ウェイクアップを送信するユーザースペースのプロセスは、管理がより簡単です。最初に該当するサービスまたはアプリケーションがシステム上で実行する必要があるかどうかを判断します。不要な場合は、単にこれを停止します。古い System V サービスを永続的にオフにするには、以下を実行します。
chkconfig off servicename off
このプロセスについてより詳細な情報を得るには、root で以下のコマンドを実行します。
ps -awux | grep processname
strace -p processid
トレースが繰り返し行われているように見える場合は、恐らくビジーループが発生しています。このようなバグを修復するには通常、そのコンポーネントでコードを変更する必要があります。
図2.1「実行中の PowerTOP」 では、消費電力量の合計と、該当する場合はバッテリーの残量が表示されます。これらの下には、1 秒あたりのウェイクアップ合計、1 秒あたりの GPU 操作、および 1 秒あたりの仮想ファイルシステム操作の概要があります。画面の残りには、使用量にしたがってプロセス、割り込み、デバイス、およびリソースの一覧が表示されます。適切に調整されると、一覧の各アイテムの最初のコラムに電力消費量の予測も表示されます。
タブを移動するには、Tab および Shift+Tab キーを使用します。Idle stats タブでは、すべてのプロセッサーおよびコアの C 状態の使用が表示されます。Frequency stats タブでは、Turbo モード (該当する場合) を含む全プロセッサーおよびコアの P 状態の使用が表示されます。CPU がより高い C または P 状態に長くいればいるほど、よいことになります (C4 の方が C3 よりも高い)。これは、CPU 使用率がどの程度うまく最適化されているかを示す指標になります。システムのアイドル中の理想状態は、最高の C または P 状態が 90% 以上を維持していることです。
Device Stats タブは Overview タブと同様の情報を表示しますが、デバイスに限定されます。
Tunables タブには、システムの消費電力量を低減させるための提案が含まれています。up および down キーを使って各提案に移動し、enter キーでそれらのオン/オフを切り替えます。
実行中の PowerTOP

図2.1 実行中の PowerTOP

PowerTOP--html オプションで実行すると、HTML レポートを生成することもできます。htmlfile.html パラメーターを希望する出力ファイル名に置き換えます。
powertop --html=htmlfile.html
デフォルトでは、PowerTOP は 20 秒間隔で測定を行いますが、--time オプションを使うとこれを変更することもできます。
powertop --html=htmlfile.html --time=seconds
PowerTOP プロジェクトの詳細情報については、プロジェクトのホームページ (英語) を参照してください。
PowerTOPturbostat ユーティリティーと併用することもできます。turbostat ユーティリティーはレポーティングツールで、Intel 64 プロセッサー上のプロセッサートポロジー、周波数、アイドル状態の電力状態、温度、および電力使用量を表示します。turbostat ユーティリティーについての詳細は、turbostat(8) man ページまたは パフォーマンスチューニングガイド を参照してください。