あなたのRHELはすでにTuneDを使っているかもしれません
RHELを運用している方は、まず次のコマンドを実行してみてください。
tuned-adm active
次のように表示された場合、そのRHELでは TuneDが利用されています。

さらに、以下を実行します。
tuned-adm verify

つまり、この状態です。
- TuneDは有効
- 現在のプロファイルは virtual-guest
- TuneDの設定は正常に反映済み
この記事では、RHELの性能チューニング機能である TuneD について、利用状態の確認方法、メリット、基本的な使い方、最適化の考え方をわかりやすく解説します。
TuneDとは
TuneD は、RHELで利用できる性能チューニング用サービスです。
CPU、ディスクI/O、ネットワーク、カーネルパラメータ、省電力設定などを、サーバ用途に合わせてまとめて調整できます。
通常、Linuxのチューニングでは、以下のような設定を個別に確認・変更する必要があります。
CPU設定
I/Oスケジューラ
sysctlパラメータ
ディスク設定
ネットワーク設定
省電力設定
TuneDを使うと、これらを プロファイル として管理できます。
例えば、仮想マシン向けなら virtual-guest、スループット重視なら throughput-performance、低遅延重視なら latency-performance といったプロファイルを選択します。
TuneDを利用するメリット
TuneDを使うメリットは、RHELの性能チューニングを 簡単に、再現性高く、戻しやすく 管理できることです。
主なメリットは以下です。
| メリット | 内容 |
|---|---|
| 設定を標準化できる | サーバ用途ごとにプロファイルで管理できる |
| 操作が簡単 | tuned-adm profile で切り替えできる |
| 状態確認しやすい | tuned-adm active や verify で確認できる |
| 戻しやすい | 以前のプロファイルに簡単に戻せる |
| 自動化しやすい | Ansibleなどに組み込みやすい |
手作業でsysctlやI/O設定を個別に変更すると、サーバごとに設定差異が出やすくなります。
TuneDを使えば、プロファイル名でチューニング方針を管理できるため、運用がシンプルになります。
TuneDの基本的な使い方
RHELでTuneDを使う場合、基本的な流れは次の通りです。
まず、TuneDをインストールします。
dnf install tuned -y
次に、TuneDサービスを有効化して起動します。
systemctl enable --now tuned
systemctl is-enabled tuned

利用可能なプロファイルを確認します。
tuned-adm list
現在のプロファイルを確認します。
tuned-adm active
推奨プロファイルを確認します。
tuned-adm recommend

プロファイルを適用する場合は、以下のように実行します。
# tuned-adm profile プロファイル名
例として、スループット重視のプロファイルを適用する場合は以下です。
tuned-adm profile throughput-performance
設定が正しく反映されているか確認するには、以下を実行します。
tuned-adm verify
成功すると、次のように表示されます。
Verification succeeded, current system settings match the preset profile.
See TuneD log file ('/var/log/tuned/tuned.log') for details.
現在のプロファイルを確認します。
tuned-adm active

よく使うtuned-admコマンド一覧
運用でよく使うコマンドを整理すると、以下のようになります。
| コマンド | 用途 |
|---|---|
tuned-adm list | 利用可能なプロファイル一覧を表示 |
tuned-adm active | 現在の有効プロファイルを確認 |
tuned-adm recommend | 推奨プロファイルを確認 |
sudo tuned-adm profile <profile> | プロファイルを適用 |
tuned-adm verify | 設定がプロファイル通りか確認 |
sudo tuned-adm off | TuneDによるチューニングを無効化 |
まずは以下の3つを覚えておけば十分です。
tuned-adm active
tuned-adm recommend
tuned-adm verify
virtual-guestとは
virtual-guest は、仮想マシン向けのTuneDプロファイルです。
以下のような環境でよく使われます。
VMware上のRHEL
KVM上のRHEL
クラウドインスタンス上のRHEL
仮想化基盤上のゲストOS
例えば、以下のように表示されている場合です。
# tuned-adm active
Current active profile: virtual-guest
この場合、現在のRHELでは仮想マシン向けのTuneDプロファイルが有効です。
仮想マシンでは、CPUやディスクをゲストOSが直接制御しているように見えても、実際にはハイパーバイザー上で動作しています。
そのため、物理サーバ向けの強いチューニングよりも、仮想環境に適した virtual-guest が安定する場合があります。
tuned-adm verifyは何を確認しているのか
tuned-adm verify は、現在のOS設定がTuneDプロファイル通りに反映されているかを確認するコマンドです。
# tuned-adm verify
Verification succeeded, current system settings match the preset profile.
これは、現在の設定がTuneDプロファイルと一致していることを意味します。
ただし、注意点があります。
verify成功は、性能が最適化されたことを意味しません。
あくまで、以下を確認しているだけです。
TuneDプロファイルが正しく反映されている
現在のOS設定がプロファイル定義と一致している
性能が本当に改善しているかは、実際に測定する必要があります。
TuneDは自動で最適な設定を選ぶのか
TuneDは、ベンチマークを自動実行して最速のプロファイルを選ぶツールではありません。
たとえば、TuneDは以下のようなことは行いません。
sarでCPU使用率を比較する
iostatでI/O性能を比較する
fioでディスク性能を測る
wrkやabでWeb性能を測る
複数プロファイルを比較して最速設定を自動採用する
TuneDの役割は、用途別に用意されたプロファイルを適用し、チューニング設定を管理しやすくすることです。
つまり、TuneDは 自動チューニングAIではなく、RHELのチューニング設定を標準化するための仕組み です。
OSインストール時にTuneDはどう決まるのか
RHELインストール後、すでにTuneDプロファイルが設定されていることがあります。
例えば、仮想マシン上のRHELでは以下のようになることがあります。
Current active profile: virtual-guest
これは、RHELが環境を認識し、TuneDの推奨ルールに基づいてプロファイルを選んでいるためです。
判断材料の例は以下です。
物理サーバか仮想マシンか
仮想化環境の種類
CPUやディスクなどの環境
インストール済みプロファイル
TuneDの推奨ルール
ただし、OSインストール時にベンチマークを実行して最適なプロファイルを選んでいるわけではありません。
インストール時のTuneD設定は、環境に応じた初期推奨値 と考えるのが正しいです。
代表的なTuneDプロファイル
TuneDには複数のプロファイルがあります。
| プロファイル | 用途 |
|---|---|
balanced | 性能と省電力のバランス |
virtual-guest | 仮想マシン向け |
virtual-host | 仮想化ホスト向け |
throughput-performance | スループット重視 |
latency-performance | 低遅延重視 |
network-throughput | ネットワーク性能重視 |
powersave | 省電力重視 |
選び方の目安は以下です。
| サーバ用途 | 候補プロファイル |
|---|---|
| 一般的な仮想マシン | virtual-guest |
| DBサーバ | throughput-performance |
| バッチサーバ | throughput-performance |
| Webサーバ | virtual-guest または throughput-performance |
| APIサーバ | virtual-guest または latency-performance |
| 検証環境 | balanced または powersave |
| 仮想化ホスト | virtual-host |
TuneDで最適化する手順
TuneDで性能チューニングする場合は、次の流れがおすすめです。
1. 現在のプロファイルを確認する
2. 変更前の性能を測定する
3. 候補プロファイルを適用する
4. 同じ条件で再測定する
5. 結果を比較して採用する
6. 効果がなければ戻す
まず、現在の状態を確認します。
tuned-adm active
tuned-adm recommend
tuned-adm verify
次に、変更前の性能を測定します。
sar -u 1 60
mpstat -P ALL 1 60
iostat -xz 1 60
Web/APIサーバなら、以下のようなツールで測定します。
wrk -t4 -c100 -d60s http://対象URL/
ディスク性能を確認する場合は fio を使います。
fio --name=randread \
--filename=/tmp/fio-test \
--size=1G \
--rw=randread \
--bs=4k \
--iodepth=16 \
--runtime=60 \
--time_based \
--direct=1
本番環境では、本番データ領域ではなく検証用領域で実行してください。
その後、候補プロファイルを適用します。
tuned-adm profile throughput-performance
または、低遅延重視なら以下です。
tuned-adm profile latency-performance
適用後、同じ条件で再測定し、結果を比較します。
確認するポイントは以下です。
| 観点 | 確認項目 |
|---|---|
| CPU | 使用率、iowait、CPUごとの偏り |
| ディスク | await、%util、r/s、w/s |
| Web/API | RPS、平均応答時間、p95、p99、エラー率 |
| バッチ | 処理完了時間、CPU使用率、I/O待ち |
| DB | TPS、クエリ応答時間、iowait、await |
効果がなければ元に戻します。
tuned-adm profile virtual-guest
チューニング時の注意点
TuneDを使う際は、以下に注意してください。
verify成功は性能改善を意味しない
変更前後で必ず測定する
変更は1つずつ行う
本番適用前に検証する
戻し手順を用意する
fioは本番データ領域で不用意に実行しない
TuneDは簡単にプロファイルを切り替えられる反面、用途に合わないプロファイルを選ぶと期待した効果が出ない場合があります。
まとめ
TuneDは、RHELの性能チューニングをプロファイル単位で管理できる便利なサービスです。
特に、以下の点でサーバ運用に役立ちます。
現在のチューニング状態を確認しやすい
用途別プロファイルを簡単に適用できる
設定を戻しやすい
サーバごとの設定を標準化できる
Ansibleなどで自動化しやすい
まずは以下の基本コマンドを覚えておきましょう。
dnf install tuned -y
systemctl enable --now tuned
tuned-adm list
tuned-adm active
tuned-adm recommend
tuned-adm verify
現在のプロファイルが virtual-guest で、tuned-adm verify が成功しているなら、仮想マシンとしては自然な状態です。
ただし、それが性能面で最適とは限りません。
本当に最適化するには、virtual-guest を基準に、throughput-performance や latency-performance を比較し、sar、iostat、mpstat、fio、wrk などで変更前後を測定することが重要です。

コメント