5 Tunedの使用

この章では、Tunedモニタリング・ツールとTunedプロファイルについて説明します。また、Tunedを使用してOracle Linuxシステムのパフォーマンスを最適化するためのタスクについても説明します。

Tunedについて

Tunedシステム・チューニング・ツールは、システムをモニターして特定の条件下でパフォーマンスを最適化するために使用します。Tunedツールは、接続されたデバイスのモニタリングにudevデバイス・マネージャを使用することで、システム設定の静的および動的チューニングの両方を可能にします。このリリースでは、動的チューニングはデフォルトでオフになっています。動的チューニングを有効にする場合は、「Tunedの静的および動的チューニングについて」を参照してください。

Tunedでは、システムのチューニングために複数の事前定義済プロファイルを使用します。特定のユース・ケースに向けたプロファイルが用意されています。これらは、省電力プロファイルとパフォーマンス向上プロファイルの2つのカテゴリに分類されます。パフォーマンス向上のプロファイルでは、ストレージとネットワークの低レイテンシと高スループットおよび仮想化ホストのパフォーマンスに対応します。

現在使用中の製品に基づいて、自動的にデフォルト・プロファイルが設定されます。tuned-adm recommendコマンドを使用すると、特定の製品に推奨されるプロファイルを判別できます。推奨されるものがない場合は、balancedプロファイルが設定されます。

各プロファイルに定義されているルールを変更することも、特定のプロファイルを使用することで特定のデバイスをチューニングする方法をカスタマイズすることもできます。さらに、Tunedは、デバイスの使用状況に変更があったときに、現在の設定の調整(アクティブなデバイスのパフォーマンスを向上させ、非アクティブなデバイスの電力消費を減少させる)をトリガーするように構成できます。

Tunedプロファイルについて

通常、次のTunedプロファイルは、デフォルトでOracle Linux 7にインストールされます。また、個別のパッケージからインストールすることもできます。

  • balanced (デフォルトのプロファイル): 省電力プロファイルです。このプロファイルは、パフォーマンスと消費電力のバランスを実現します。このプロファイルでは、自動スケーリングおよび自動チューニングが使用されます(使用可能な場合)。考えられるデメリットは、レイテンシの増加です。

  • powersave: 最大の省電力パフォーマンスを実現するプロファイルです。このプロファイルは、パフォーマンスを抑制することで、実際の電力消費を最小限に抑えることができます。

    ノート:

    balancedプロファイルを選択するほうが、powersaveプロファイルよりも高効率になることがあります。

  • throughput-performance (デフォルト・プロファイル): 高スループットに向けて最適化されたサーバー・プロファイルです。このプロファイルは、省電力メカニズムを無効にして、sysctl設定を有効にすることで、ディスクとネットワークIOのスループット・パフォーマンスを向上させます。

  • latency-performance: 低レイテンシに向けて最適化されたサーバー・プロファイルです。このプロファイルは、省電力メカニズムを無効にして、sysctl設定を有効にすることで、レイテンシを改善します。

  • network-latency: 低レイテンシのネットワーク・チューニングを実現するプロファイルであり、latency-performanceプロファイルに基づいています。さらに、このプロファイルは、透過的なhuge pagesとNUMAのバランシングを無効にして、複数のネットワーク関連のsysctl設定をチューニングします。

  • network-throughput: スループットのネットワーク・チューニングに向けたプロファイルです。throughput-performanceプロファイルに基づいています。さらに、このプロファイルでは、カーネル・ネットワーク・バッファを増やします。

  • virtual-guest (デフォルトのプロファイル): 仮想ゲスト用に設計されたプロファイルであり、throughput-performanceプロファイルに基づいています。このプロファイルは、仮想メモリーのスワップを減らして、ディスク先読みの値を増やします。

  • virtual-host: 仮想ホスト用に設計されたプロファイルであり、throughput-performanceプロファイルに基づいています。このプロファイルは、仮想メモリーのスワップを減らして、ディスク先読みの値を増やし、より積極的なダーティ・ページ・ライトバック値を有効にします。

  • desktop: デスクトップ環境に向けて最適化されプロファイルであり、balancedプロファイルに基づいています。さらに、このプロファイルにより、対話型アプリケーションに対するスケジューラ自動グループの応答が向上します。

ノート:

システム構成と目的のユース・ケースに応じて、追加のプロファイルをインストールできます。たとえば、Oracle Linuxにリアルタイム・カーネルを使用している場合は、リアルタイム・プロファイルを使用できます。こうしたオプションのパッケージのほとんどは、ol7_optional_latestチャネルからインストールできます。

リアルタイム・プロファイルは、コンパイル時にリアルタイム・サポートを有効にしていないカーネルには効果がありません。

現在インストール可能なすべてのプロファイルをリスト表示するには、次のコマンドを使用します。

sudo yum list tuned-profiles*

システムにデフォルトでインストールされているTunedプロファイルは、/usr/lib/tunedディレクトリと/etc/tunedディレクトリに格納されています。ディストリビューション固有のプロファイルは、/usr/lib/tunedディレクトリに格納されています。それぞれのプロファイルに、専用のディレクトリがあります。それぞれのプロファイル・ディレクトリは、メインの構成ファイルtuned.confと、その他のオプション・ファイルで構成されます。

カスタム・プロファイルを使用する場合は、そのプロファイル・ディレクトリをカスタム・プロファイルの格納場所である/etc/tunedディレクトリにコピーします。同じ名前のプロファイルが2つあるときには、/etc/tuned/にあるカスタム・プロファイルが使用されます。

tuned.confファイルには、1つの[main]セクションと、プラグイン・インスタンス構成用の追加セクションを含めることができます。これに該当するセクションはオプションです。プロファイル構成の詳細は、マニュアル・ページのtuned.conf(5)を参照してください。

デフォルトのTunedプロファイルについて

Oracle Linuxのインストール時に、デフォルトのTunedプロファイルが自動的に選択されます。選択されたデフォルトのプロファイルは、特定の環境と、その特定のユース・ケースで達成されるパフォーマンス目標に基づいています。次のデフォルトのプロファイルが用意されています。

  • throughput-performance: コンピュート・ノードがOracle Linuxを実行している環境で使用されるプロファイルです。このプロファイルは、最高のスループット・パフォーマンスを実現します。

  • virtual-guest: 仮想マシンがOracle Linuxを実行している環境で使用されるプロファイルです。このプロファイルは、最高のパフォーマンスを実現します。最高のパフォーマンスを目的としていない場合は、そのプロファイルをbalancedまたはpowersaveのどちらかのプロファイルに変更できます。

  • balanced: その他のユース・ケースに使用されるプロファイルです。このプロファイルは、パフォーマンスと電力消費のバランスを実現します。

 Tunedの静的および動的チューニングについて

静的チューニングでは、sysctlsysfsなどのシステム構成ツール用の構成ファイルで定義した設定をペレーティング・システム全体に適用します。

tunedサービスは、そのサービスによって収集されたシステムに関する情報とシステムの現在の実行状態に関する情報に基づいて、システム・コンポーネントのアクティビティと動的にチューニングされたシステム設定をモニタリングするように構成できます。

動的チューニングは、CPU、ハード・ドライブ、ネットワーク・アダプタなどのデバイスへの負荷がアイドル時にはできるだけ電力消費が少なくなるようにしながら、高負荷時には高いスループットと低レイテンシを必要とする状況で特に役立ちます。

動的チューニングは、/etc/tuned/tuned-main.conf設定ファイルで適切な値を設定することで有効化します。次に例を示します。

dynamic_tuning = 1
その次に、収集結果に基づいてシステムを動的にチューニングできるように、同じ構成ファイル内でtunedが現在のシステム状態を分析する時間間隔を秒単位で設定する必要があります。
update_interval = 10

 コマンドラインからのTunedのインストールと有効化

次の手順では、Tunedのインストールと有効化の方法、Tunedプロファイルのインストール方法、Oracle Linuxシステム用のデフォルトのTunedプロファイルを事前設定する方法について説明します。

  1. まだtunedパッケージがインストールされていない場合は、そのパッケージをインストールしてください。

    sudo yum install tuned
  2. tunedサービスを有効にして起動します。

    sudo systemctl enable --now tuned
  3. アクティブなTunedプロファイルを確認します。

    sudo tuned-adm active
    Current active profile: balanced
  4. Tunedプロファイルがシステムに適用されていることを確認します。

    sudo tuned-adm verify
    Verfication succeeded, current system settings match the preset profile.
    See tuned log file ('/var/log/tuned/tuned.log') for details.

    現在のシステム設定との不一致を示すメッセージが表示された場合は、tunedサービスを再起動してみてください。

    sudo systemctl start tuned

デーモンなしモードでのTunedの実行

no-daemonモードでtunedを実行する場合、常駐メモリーは不要です。ただし、このモードでサービスを実行すると、tunedは動的チューニングを実行しなくなります。no-daemonモードでは、tunedは設定のみを適用して終了します。

no-daemonモードでtunedを実行する場合は、次の値を/etc/tuned/tuned-main.conf設定ファイルで設定する必要があります。

daemon = 0

注意:

no-daemonモードでtunedを実行する場合は、デーモンを実行していないと一部の機能が動作しない点に注意してください。特に、tunedでは、D-Busサービスまたはホットプラグ・カーネル・サブシステムがサポートされなくなります。そのために、tunedは、変更された設定ファイルの自動的なロールバックができなくなります。

TunedサービスとTunedプロファイルの管理

Tunedの管理には、tuned-admコマンドを使用します。次のタスクでは、Oracle LinuxシステムでTunedプロファイルとtunedサービスを管理する方法について説明します。

詳細は、マニュアル・ページのtuned-adm(8)tuned(8)を参照してください。

Tunedプロファイルのリスト

システムで使用可能なすべてのTunedプロファイルをリストするには、次のようにします。

sudo tuned-adm list
Available profiles:
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- hpc-compute                 - Optimize for HPC compute workloads
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- powersave                   - Optimize for low power consumption
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests
Current active profile: throughput-performance

この出力には、現在アクティブなプロファイルも表示されます。

現在アクティブなプロファイルのみを表示するには、次のようにします。

sudo tuned-adm active
Current active profile: balanced

Tunedプロファイルのアクティブ化

ノート:

Tunedプロファイルをアクティブ化するには、システムでtunedサービスが実行されていることが必要です。

次のコマンドを使用して、特定の選択したTunedプロファイルをアクティブ化します。

sudo tuned-adm profile profile-name
                  

Tunedが推奨する対象システムに最適なプロファイルを調べるには、tuned-adm recommendコマンドを使用します。

sudo tuned-adm recommend
virtual-guest

複数のプロファイルの組合せをアクティブ化するには、次のコマンド構文を使用します。

sudo tuned-adm profile profile1 profile2
                  

Tunedの無効化

一時的にチューニングを無効にするには、次のコマンドを使用します。

sudo tuned-adm off

このコマンドにより、tunedサービスを再起動するまでチューニング設定が無効になります。サービスを再起動すると、以前のすべてのチューニング設定が再適用されます。

次のようにtunedサービスを停止および無効化すると、永続的なチューニングの無効化が可能になります。

sudo systemctl disable --now tuned