5 TuneDの使用
TuneDユーティリティは、特定の条件下でシステムのパフォーマンスを最適化できるように、システムを監視するためのツールです。このユーティリティは、次の主要構成要素からなります。
- TuneDプロファイル
tune-adm
コマンド
基本的なTuneD機能は、tuned
パッケージによって提供されます。Oracle Linuxが実行されている場所(たとえば、Oracle Cloud InfrastructureにあるOracle Linuxインスタンス上)によっては、このパッケージがOSとともに自動的にインストールされる場合があります。
TuneDがすでにシステムに存在するかどうかを確認するには、次のように入力します。
dnf list tuned
Installed Packages
tuned.noarch version
...
この機能がシステムにない場合は、次の手順を実行します。
-
tuned
パッケージをインストールします。sudo dnf install tuned
-
tuned
サービスを有効にします。sudo systemctl enable --now tuned
使用可能だがシステムにインストールされていないその他TuneDパッケージをリストするには、次のように入力します。
sudo dnf list tuned-profiles*
その他のTuneDパッケージが必要な場合は、これらを個別にインストールする必要があります。
TuneDプロファイルについて
TuneDでは、TuneDプロファイルを使用することでシステムの最適化が実行されます。TuneDプロファイルは、様々なユースケースにおいてチューニング・タスクを適用する、事前定義された一連の最適化ルールからなります。
適切なパッケージをインストールした後、次のコマンドで、使用可能なプロファイルをリストできます。
tuned-adm list
このコマンドの出力は、Oracle Linuxが実行されている場所によって異なります。物理システムと仮想システムでは、使用可能なプロファイルとして、次のような内容が表示される可能性があります。
Available profiles:
- accelerator-performance - Throughput performance based tuning with disabled higher latency STOP states
- balanced - General non-specialized tuned profile
- desktop - Optimize for the desktop use-case
- hpc-compute - Optimize for HPC compute workloads
...
Oracle Cloud Infrastructureにおいて実行されているOracle Linuxインスタンスでは、次のプロファイルがさらにリストに含まれます。
...
- oci-busy-polling - Enable Busy Polling conditionally in OCI
- oci-cpu-power - Set processor power management parameters in OCI
- oci-nic - Increase combined channels to 16 on NICs with bnxt_en driver on BM shapes in OCI
- oci-rps-xps - Enable RPS/XPS conditionally in OCI
...
TuneDでシステムの最適化に使用する主なプロファイルを次に示します。このリストではすべてを示しているわけではありません。
-
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
プロファイルに基づいています。このプロファイルは、仮想メモリーのswappiness
の値を減らし、ディスクのreadahead
の値を増やします。 -
virtual-host
: 仮想ホスト用に設計されています。throughput-performance
プロファイルに基づいています。このプロファイルは、仮想メモリーのswappiness
の値を減らし、ディスクのreadahead
の値を増やし、ダーティ・ページのwriteback
により積極的な値を設定します。 -
desktop
: デスクトップ環境用に最適化されます。balanced
プロファイルに基づいています。さらに、このプロファイルにより、対話型アプリケーションの応答性を高めるためにスケジューラのautogroups
が設定されます。
TuneDプロファイルの構成ファイルについて
プロファイルは自動的に次の場所に格納されます。
/usr/lib/tuned
には、事前定義済プロファイルが含まれています。/etc/tuned
には、デフォルトでインストールされる他のファイルに加えて、カスタム・プロファイルが含まれます。
TuneDプロファイルにより、システムのリソースおよび構成要素に関してどのように最適化を実行するかを指示します。これらのプロファイルは事前定義されており、省電力プロファイルとパフォーマンス向上プロファイルという2つの一般的なカテゴリに分けられます。
たとえば、/usr/lib/tuned/desktop
プロファイルはデスクトップ関連のリソースを最適化し、/usr/lib/tuned/powersave
はシステムの消費電力を最適化します。
プロファイルは、そのプロファイル用に設定された最適化ルールを使用することで動作します。各プロファイルのルールは、対応するtuned.conf
ファイルに含まれています。したがって、desktop
プロファイルではそのルールは/usr/lib/tuned/desktop/tuned.conf
内で定義され、powersave
プロファイル用のルールは/usr/lib/tuned/powersave/tuned.conf
内で定義されます。
例として、desktop
プロファイルの構成ファイルの内容を次に示します。
less /usr/lib/tuned/desktop/tuned.conf
#
# tuned configuration
#
[main]
summary=Optimize for the desktop use-case
include=balanced
[sysctl]
kernel.sched_autogroup_enabled=1
これらの構成ファイルでは、そのプロファイル用のルールを変更することや、プロファイルによる特定のデバイスの最適化方法をカスタマイズすることができます。また、TuneDを、デバイス使用方法が変更されると現行設定の調整がトリガーされるように構成することもできます。構成ファイルの定義を調整することで、特定のシステムにおける最適化をカスタマイズおよび改善できます。
カスタム・プロファイルを作成するには、/usr/lib/tuned/profile
ディレクトリを/etc/tuned
ディレクトリにコピーします。次に、プロファイルのtuned.conf
を変更します。
プロファイル構成の詳細は、マニュアル・ページのtuned.conf(5)
を参照してください。
tuned-admコマンドの使用
TuneDユーティリティの機能を利用するには、tuned-admコマンドを使用します。次のタスクでは、Oracle LinuxでTuneDプロファイルとtuned
サービスを管理する方法について説明します。
詳細は、マニュアル・ページのtuned-adm(8)
とtuned(8)
を参照してください。
システム内の使用可能なプロファイルとアクティブなプロファイルのリスト
システム内のプロファイルをリストするには、次のように入力します。
sudo tuned-adm list
表示されるプロファイルの数は、Oracle Linuxシステムを使用しているかOracle Cloud InfrastructureにあるOracle Linuxインスタンスを使用しているかで異なります。
この出力では、必ず最後に、現在使用中のプロファイルが表示されます。Oracle Cloud InfrastructureにあるOracle Linuxインスタンスでは、たとえば、最終行は次のようになります。
...
Current active profile: oci-rps-xps oci-busy-polling oci-cpu-power oci-nic
物理システムまたは仮想マシンでは、デフォルトのアクティブ・プロファイルが異なる場合があります。
使用可能なすべてのプロファイルをリストせずに、システムまたはインスタンスでどのプロファイルがアクティブになっているかを直接問い合せるには、次のように入力します。
sudo tuned-adm active
プロファイルに従ってシステムが最適化されていることの確認
アクティブなプロファイル内で定義されている設定のとおりにシステムが最適化されているかどうかを確認できます。次の手順を実行します。
verify
サブコマンドを実行します。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ログの内容を調べてより詳細な情報を確認します。
less /var/log/tuned/tuned.log
推奨プロファイルの問合せ
/etc/tuned/tuned-main.conf
内でrecommend
パラメータが有効になっている場合は、TuneDにより、さらに適した最適化プロファイルが提案されます。次に例を示します:
sudo tuned-adm recommend
balanced
プロファイルの選択とアクティブ化
システムまたはインスタンスでtuned
を有効にすると、デフォルトのTuneDプロファイルが自動的にアクティブになります。ただし、別のプロファイルを選択してそれをアクティブ化すると、そのプロファイルに基づいてシステムの最適化が実行されるようになります。次の構文を使用します。
sudo tuned-adm profile profile1 [profile2 profile3 ...]
アクティブ・プロファイルの変更には、次の方法をお薦めします。
- 現在アクティブなプロファイルを確認します。
sudo tuned-adm active
balanced
- オプションで、システム内の使用可能なプロファイルをリストします。
sudo tuned-adm list
- アクティブ化する別のプロファイルを選択します。
sudo tuned-adm profile powersave
- 変更内容を確認します。
sudo tuned-adm active
powersave
注意:
TuneDでは、複数のプロファイルをアクティブ化できます。プロファイル・ルールが競合している場合は、TuneDにより、このコマンドで指定した最後のプロファイルの設定が適用されます。
複数のプロファイルがマージされている場合、TuneDでは、その組合せが論理的であるかどうかを判断できません。そのため、共通コンポーネントまたはリソースのパフォーマンスに関連する、これらのプロファイル内のパラメータが、逆の方法にチューニングされる危険性があります。複数のプロファイルのマージによって、より適切な最適化が実現されるとはかぎりません。
Oracle Cloud InfrastructureにあるOracle Linuxインスタンスは例外であり、この場合は、TuneDのインストール時に複数のoci-*
プロファイルが自動的にアクティブ化されます。
TuneDの無効化
TuneDを一時的に無効にするには、TuneDサービスをオフに切り替えます。このサービスをオフに切り替えると、アクティブなプロファイルが削除され、システムでのすべてのチューニング操作が効率的に停止されます。チューニングを再開するには、プロファイルをアクティブ化します。以降の手順では、システム・チューニングを停止する方法を示します。
- 必要に応じて、現在アクティブなプロファイルをメモしておきます。
sudo tuned-adm active
- TuneDをオフに切り替えます。
sudo tuned-adm off
- システム・チューニングのステータスを確認します。
sudo tuned-adm active
No current active profile.
システム・チューニングを再開するには、次を実行します。
- 再アクティブ化するプロファイルを決定します。
- 現在のシステム環境またはインスタンス用に事前定義されているデフォルト・プロファイルを特定して使用するには、次のように入力します。
sudo tuned-adm recommend
- デフォルト・プロファイル以外のプロファイルを選択するには、使用可能なプロファイルを表示します。次のように入力します。
sudo tuned-adm list
- TuneDをオフにする前にアクティブだったのと同じプロファイルを再使用するには、前にTuneDサービスの無効化の手順で書き留めたメモを見ます。
- 現在のシステム環境またはインスタンス用に事前定義されているデフォルト・プロファイルを特定して使用するには、次のように入力します。
- 選択したプロファイルをアクティブ化します。
sudo tuned-adm profile profile
システム・チューニングを完全に無効にするには、tuned
サービスを停止します。
sudo systemctl disable --now tuned
TuneDユーティリティへのグローバル設定の適用
/etc/tuned/tuned-main.conf
では、定義されたグローバル設定によってtuned
サービス全体が制御されます。このファイルの抜粋を次に示します。
# Global tuned configuration file.
# Whether to use daemon. Without daemon it just applies tuning. It is
# not recommended, because many functions don't work without daemon,
# e.g. there will be no D-Bus, no rollback of settings, no hotplug,
# no dynamic tuning, ...
daemon = 1
# Dynamicaly tune devices, if disabled only static tuning will be used.
dynamic_tuning = 0
# How long to sleep before checking for events (in seconds)
# higher number means lower overhead but longer response time.
sleep_interval = 1
# Update interval for dynamic tunings (in seconds).
# It must be multiply of the sleep_interval.
update_interval = 10
# Recommend functionality, if disabled "recommend" command will be not
# available in CLI, daemon will not parse recommend.conf but will return
# one hardcoded profile (by default "balanced").
recommend_command = 1
...
次に、/etc/tuned/tuned-main.conf
内のパラメータの構成例を示します:
-
静的にするか動的にするかの選択
dynamic_tuning
パラメータを使用すると、システム・チューニングを静的にするか動的にするかを選択できます。デフォルトでは、システム内で静的チューニングが動作します。静的チューニングでは、
sysctl
およびsysfs
コマンドの事前定義してある設定が適用されるか、構成ツールがアクティブ化された時点でこれらのツールの設定内容が適用されます。その後、さらにチューニングが実行されることはありません。動的チューニングは、それとは異なり、継続的に実行されます。システムが稼働している間はずっと、TuneDにより、周期的にそのシステムが監視されます。TuneDにより、特定の間隔で収集された情報に基づいて、そのシステムが最適化されます。TuneDでコンポーネントが監視および最適化される間隔は、
uptime_interval
の値によって決まります。この値はデフォルトでは10秒に設定されています。 -
デーモン・モードにするかデーモンなしモードにするかの選択
daemon
パラメータを使用すると、システム・チューニングのモードを設定できます。デーモンが実行されている場合、デフォルトでは、TuneDの機能はアクティブになります。TuneDをデーモンが無効になった状態で動作するように切り替えた場合、TuneDは、プロファイル設定を適用してから終了します。このモードの使用はお薦めしていません。これは、デーモンを無効にすると一部のTuneD機能(DBusとの互換性、ホットプラグ、設定のロールバックなど)がなくなるためです。