Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.2. tuned と tuned-adm によるパフォーマンスチューニング

tuned チューニングサービスを使用すると、チューニングプロファイルを設定して、特定のワークロードでより良くパフォーマンスを発揮するようにオペレーティングシステムを調整することができます。tuned-adm コマンドラインツールを使用すると、ユーザーは異なるチューニングプロファイルを切り替えることができます。

tuned プロファイルの概要

一般的なユースケースにはいくつかの事前定義済みプロファイルが含まれていますが、tuned ではカスタムプロファイルを定義することもできます。このプロファイルは、事前定義済みプロファイルの 1 つをベースにすることも、ゼロから定義することも可能です。Red Hat Enterprise Linux 7 では、デフォルトのプロファイルは throughput-performance です。
tuned で提供されるプロファイルは、省電力プロファイルと performance-boosting プロファイルの 2 つのカテゴリーに分類されます。performance-boosting プロファイルの場合は、次の側面に焦点が置かれます。
  • ストレージおよびネットワークに対して少ない待ち時間
  • ストレージおよびネットワークの高いスループット
  • 仮想マシンのパフォーマンス
  • 仮想化ホストのパフォーマンス

tuned ブートローダープラグイン

tuned Bootloader プラグイン を使用して、パラメーターをカーネル(ブートまたは dracut)コマンドラインに追加できます。GRUB 2 ブートローダーのみがサポートされ、プロファイルの変更を適用するには再起動が必要なことに注意してください。たとえば、quiet パラメーターを tuned プロファイルに追加するには、tuned.conf ファイルに次の行を含めます。
[bootloader]
cmdline=quiet
別のプロファイルに切り替えるか、tuned サービスを手動で停止すると、追加のパラメーターが削除されます。システムをシャットダウンまたは再起動すると、カーネルパラメーターは grub.cfg ファイルで永続化されます。

環境変数とデプロイメント tuned 組み込み関数

GRUB 2 設定の更新後に tuned-adm profile profile_name を実行してから grub2-mkconfig -o profile_path を実行すると、Bash 環境変数を使用できます。これは grub2-mkconfig の実行後に展開されます。たとえば、以下の環境変数は nfsroot=/root に展開されます。
[bootloader]
cmdline="nfsroot=$HOME"
環境変数の代わりに tuned 変数を使用できます。以下の例では、$ {isolated_cores} は 1,2 に 展開 されるため、カーネルは isolcpus=1,2 パラメーターで起動します。
[variables]
isolated_cores=1,2

[bootloader]
cmdline=isolcpus=${isolated_cores}
以下の例では、$ {non_isolated_cores}0,3 -5 に展開され、cpulist_invert の組み込み関数は 0,3-5 引数で呼び出されます。
[variables]
non_isolated_cores=0,3-5

[bootloader]
cmdline=isolcpus=${f:cpulist_invert:${non_isolated_cores}}
cpulist_invert 関数は、CPU の一覧を反転します。6 CPU マシンの場合、反転は 1,2 で、カーネルは isolcpus=1,2 コマンドラインパラメーターで起動します。
tuned 環境変数を使用すると、必要な入力の量が削減されます。調整 された変数とともに、さまざまな組み込み関数を使用することもできます。組み込み関数がニーズを満たさない場合は、Python でカスタム関数を作成し、プラグインの形式で tuned に追加できます。tuned プロファイルがアクティベートされた場合、変数と組み込み関数は実行時にデプロイメントされます。
変数は個別のファイルで指定できます。たとえば、以下の行を tuned.conf に追加できます。
[variables]
include=/etc/tuned/my-variables.conf

[bootloader]
cmdline=isolcpus=${isolated_cores}
isolated_cores=1,2 を /etc/tuned/my-variables.conf ファイルに追加すると、カーネルは isolcpus=1,2 パラメーターで起動します。

デフォルトのシステム tuned プロファイルの変更

デフォルトのシステム tuned プロファイルを変更するには、2 つの方法があります。tuned プロファイルディレクトリーを新規作成するか、システムプロファイルのディレクトリーをコピーして、必要に応じてプロファイルを編集できます。

手順3.1 新しい tuned プロファイルディレクトリーの作成

  1. /etc/tuned/ で、作成するプロファイルと同じ新しいディレクトリーを作成します( /etc/tuned/my_profile_name/ )。
  2. 新しいディレクトリーで、ファイル tuned.conf を作成し、先頭に以下の行を追加します。
    [main]
    include=profile_name
  3. プロファイルの変更を含めます。たとえば、vm.swappiness の値をデフォルトの 10 ではなく 5 に設定して throughput-performance プロファイルからの設定を使用するには、以下の行を追加します。
    [main]
    include=throughput-performance
    
    [sysctl]
    vm.swappiness=5
    
  4. プロファイルをアクティベートするには、次のコマンドを実行します。
    # tuned-adm profile my_profile_name
新しい tuned.conf ファイルでディレクトリーを作成すると、システム tuned プロファイルの更新後にプロファイルの変更をすべて保持できます。
または、システムプロファイルを含むディレクトリーを /user/lib/tuned/ から /etc/tuned/ にコピーします。以下に例を示します。
# cp -r /usr/lib/tuned/throughput-performance /etc/tuned
次に、必要に応じて /etc/tuned でプロファイルを編集します。同じ名前のプロファイルが 2 つある場合は、/etc/tuned/ にあるプロファイルが読み込まれることに注意してください。このアプローチの欠点は、チューニング されたアップグレード後にシステムプロファイルが更新されても、現在古い変更されたバージョンには変更が反映されないことです。

関連情報

詳細については、「tuned」 および 「tuned-adm」 を参照してください。tuned および tuned-adm の使用に関する詳細は、tuned(8) および tuned-adm(1) の man ページを参照してください。