2.5.2. Tuned-adm
システムを詳細に監査、分析することは、非常に時間のかかる作業であり、数ワットの節電のためだけに行う価値はないかもしれません。今までは、こうした煩雑な作業の代わりになる方法は、単にデフォルトを使用することだけでした。そのため、Red Hat Enterprise Linux 6 では、こうした両極端な方法の代替案となるプロファイルを複数用意し、特定の使用例に対応しています。さらには、コマンドラインで複数のプロファイルを簡単に切り替えることができる tuned-adm ツールも提供しています。Red Hat Enterprise Linux 6 には、一般的な使用例に則した定義済みのプロファイルが同梱されているので、
tuned-adm
コマンドで選択してアクティベートするだけで使用できるようになります。ただし、プロファイルをユーザー自身で作成したり、修正を行なうほか、削除することも可能です。
利用可能な全プロファイルを一覧表示して、現在アクティブなプロファイルを特定するには、以下を実行します。
tuned-adm list
現在アクティブなプロファイルだけを表示する場合は、以下を実行します。
tuned-adm active
別のプロファイルに切り替える場合は、以下を実行します。
tuned-adm profile profile_name
例を示します。
tuned-adm profile server-powersave
すべてのチューニングを無効にする場合は、以下を実行します。
tuned-adm off
tuned を初めてインストールする際には、
default
プロファイルはアクティブになっています。Red Hat Enterprise Linux 6 には以下の定義済みプロファイルも含まれています。
- デフォルト
- デフォルトの節電プロファイルです。利用可能なプロファイルの中で節電への影響が最も少なく、tuned の CPU とディスクのプラグインを有効にするだけです。
- desktop-powersave
- デスクトップシステム向けの節電プロファイルです。SATA ホストアダプター用の ALPM 節電 (「Aggressive Link Power Management」 参照) と tuned の CPU、イーサネット、およびディスクプラグインを有効にします。
- server-powersave
- サーバーシステム向けの節電プロファイルです。SATA ホストアダプター用の ALPM 節電を有効にして、HAL による CD-ROM ポーリングを無効にします (hal-disable-polling man ページ参照)。 また、 tuned の CPU とディスクプラグインをアクティベートします。
- laptop-ac-powersave
- AC 電源で稼働中のノート PC 向け節電プロファイルで、中程度の影響があります。SATA ホストアダプター用の ALPM 節電、WiFi 節電、および tuned の CPU、イーサネット、ディスクプラグインを有効にします。
- laptop-battery-powersave
- バッテリーで稼働中のノート PC 向け節電プロファイルで、大きな影響があります。上記プロファイルの全節電メカニズムをアクティベートし、さらにウェイクアップの少ないシステムのマルチコア節電スケジューラーを有効にします。また、 ondemand ガバナーをアクティブにし、AC97 オーディオ節電も有効にします。このプロファイルを使用すると、バッテリーで駆動しているノート PC だけでなく、あらゆるシステムで最大限の節電が可能になります。このプロファイルのトレードオフは、 パフォーマンス、特にディスクとネットワーク I/O の待ち時間に顕著な影響がある点です。
- spindown-disk
- 高い節電率を期待できる標準的なハードディスクを持つマシン向けプロファイルです。ディスクの書き戻し値を増やし、ディスクの swappiness 設定値を低くし、またログの同期を無効にすることで積極的なディスク回転の減速を行ないます。パーティションはすべて
noatime
オプションで再マウントされます。tuned のプラグインはすべて無効になります。 - throughput-performance
- 標準的なスループットのパフォーマンスチューニング用のサーバープロファイルです。これは tuned と ktune の節電メカニズムを無効にし、ディスクとネットワーク I/O のスループットのパフォーマンスを向上させる sysctl 設定を有効にします。また、deadline scheduler に切り替えます。
- latency-performance
- 標準的な遅延パフォーマンスチューニング用のサーバープロファイルです。このプロファイルは、動的チューニングメカニズムと transparent hugepages を無効にします。これは、
cpuspeed
で p 状態用にperformance
ガバナーを使用し、I/O スケジューラーをdeadline
に設定します。また Red Hat Enterprise Linux 6.5 およびそれ以降では、プロファイルはcpu_dma_latency
の値1
を要求します。Red Hat Enterprise Linux 6.4 およびそれ以前では、cpu_dma_latency
は0
の値を要求していました。 - enterprise-storage
- 企業規模のサーバー構成でスループットパフォーマンスを向上させるサーバー向けプロファイルです。 deadline scheduler に切り替わり、 特定の I/O バリアを無効にすることでスループットを大幅に向上させます。
- virtual-guest
- このプロファイルは、仮想マシン用に最適化されています。enterprise-storage プロファイルをベースとしていますが、仮想メモリーの swap も低減します。このプロファイルは Red Hat Enterprise Linux 6.3 以降で利用可能です。
- virtual-host
- enterprise-storage プロファイルに基づいている virtual-host は、仮想メモリーの swap を減らし、ダーティーページのより積極的な書き戻しを可能にします。
barrier=0
で root ファイルシステムおよび起動ファイルシステム以外のファイルシステムがマウントされます。さらに Red Hat Enterprise Linux 6.5 では、kernel.sched_migration_cost
パラメーターが 5 ミリ秒に設定されます。Red Hat Enterprise Linux 6.5 より前では、kernel.sched_migration_cost
はデフォルト値の 0.5 ミリ秒を使用していました。 - sap
- SAP ソフトウェアのパフォーマンスを最大化するように最適化されたプロファイルです。enterprise-storage プロファイルをベースにしています。sap プロファイルは、共有メモリー、セマフォ、プロセスが所有するメモリーマップの最大数に関する sysctl 設定も調整します。
すべてのプロファイルは
/etc/tune-profiles
の下の個別のサブディレクトリーに保管されています。そのため、 /etc/tune-profiles/desktop-powersave
には、そのプロファイルに関するすべての必要なファイルと設定が含まれています。これらのディレクトリーにはそれぞれ最大 4 つの以下のようなファイルがあります。
tuned.conf
- このプロファイルに対し tuned サービスをアクティブする設定です。
sysctl.ktune
- ktune で使用される sysctl 設定です。この形式は
/etc/sysconfig/sysctl
ファイルの形式と同じです (sysctl および sysctl.conf man ページを参照)。 ktune.sysconfig
- ktune の設定ファイルです。通常は
/etc/sysconfig/ktune
です。 ktune.sh
- ktune サービスで使用される init スタイルのシェルスクリプトです。システム起動時に、チューニングを行なうための特定のコマンドを実行することができます。
新しいプロファイルを開始する最も簡単な方法は既存のプロファイルをコピーすることです。
laptop-battery-powersave
プロファイルには、既に非常に豊富なチューニングのグループがあるため、ここから始めるのが現実的です。以下のように、ディレクトリー全体を新しいプロファイル名にコピーするだけです。
cp -a /etc/tune-profiles/laptop-battery-powersave/ /etc/tune-profiles/myprofile
個々のニーズに合うように、新しいプロファイルのファイルのいずれかを修正します。例えば、CD の変更を検出したい場合は、以下のように ktune.sh スクリプト内の該当する行をコメントアウトすることにより、その最適化を無効にすることができます。
# Disable HAL polling of CDROMS # for i in /dev/scd*; do hal-disable-polling --device $i; done > /dev/null 2>&1