2.2. PowerTOP

Red Hat Enterprise Linux 7 ではティックレスカーネルが導入されたため、CPU がより頻繁にアイドル状態になるようになり、電力消費量が抑えられ、電力管理が向上しました。PowerTOP ツールは、CPU を頻繁にウェイクアップするカーネルとユーザースペースアプリケーションの特定のコンポーネントを識別します。PowerTOP は、監査を行うために開発段階で使用されていました。これにより、このリリースで多くのアプリケーションのチューニングが行われ、不要に CPU がウェイクアップする率が約 10 分の1に低下しました。
Red Hat Enterprise Linux 7 には、バージョン 2.x の PowerTOP が含まれます。このバージョンは、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 サービスを永続的に無効にするには、以下のコマンドを実行します。
~]# systemctl disable servicename.service
このプロセスについてより詳細な情報を得るには、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 の詳細については、PowerTOP のホームページ を参照してください。
PowerTOPturbostat ユーティリティーと併用することもできます。turbostat ユーティリティーはレポーティングツールであり、Intel 64 プロセッサーのプロセッサートポロジー、周波数、アイドル状態の電力状態、温度、および電力使用量を表示します。turbostat ユーティリティーの詳細については、turbostat(8) man ページまたは『パフォーマンスチューニングガイド』を参照してください。