tuned-admコマンドでLinuxのパフォーマンスプロファイルを切り替える方法|throughput・latency・virtual-guestの使い分け

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > tuned-admコマンドでLinuxのパフォーマンスプロファイルを切り替える方法|throughput・latency・virtual-guestの使い分け
「Linuxサーバーのパフォーマンスが上がらない。sysctlのパラメータを調整してもレスポンスが改善しない」
そのようなとき、見落とされがちなのがOSのパフォーマンスプロファイル設定です。RHEL・Rocky Linux・AlmaLinuxには、ワークロードに合わせてカーネルパラメータ・I/Oスケジューラ・CPUガバナーを一括調整してくれるtunedというデーモンが標準搭載されています。

この記事では、tuned-admコマンドの基本操作から、throughput-performance・latency-performance・virtual-guestなど代表的なプロファイルの特徴と使い分け、設定が効かない時のトラブルシュートまでを、RHEL 9.4 / Rocky Linux 9.4の実機出力を交えて解説します。

この記事のポイント

・tuned-adm profileコマンド1行でパフォーマンスプロファイルを切り替えられる
・スループット重視はthroughput-performance、レイテンシ重視はlatency-performance
・仮想マシン内ではvirtual-guestを選ばないと逆にパフォーマンスが低下することがある
・tuned-adm verifyで設定が実際に適用されているかを確認できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

なぜLinuxはデフォルトのままではパフォーマンスが最適化されていないのか?

Linuxカーネルは汎用に設計されているため、デスクトップPCでも組み込みシステムでもサーバーでも動作します。その反面、すべてのワークロードを「そこそこ」こなせるチューニングになっており、特定の用途には最適化されていません。

tunedはRed Hat社が開発したシステムチューニングフレームワークです。ワークロードの種類に応じてカーネルパラメータ・CPUガバナー・I/Oスケジューラをプロファイルという単位にまとめ、コマンド1行で切り替えられる仕組みを提供します。個別のsysctl設定を手作業で変更する手間を大幅に省けます。

RHEL 9・Rocky Linux 9ではtunedはデフォルトでインストール・起動されています。しかしプロファイルはbalanced(汎用設定)のまま放置されているケースが多く、ワークロードに合わせた最適化の余地があります。

tuned-admの基本操作

実行環境: RHEL 9.4 / Rocky Linux 9.4で動作確認済み

1. tunedサービスの状態を確認する

まずtunedデーモンが動いているかを確認します。

# check tuned service status $ systemctl status tuned * tuned.service - Dynamic System Tuning Daemon Loaded: loaded (/usr/lib/systemd/system/tuned.service; enabled; preset: enabled) Active: active (running) since Mon 2026-08-05 09:00:14 JST; 2h 15min ago Docs: man:tuned(8) Main PID: 1012 (tuned) Tasks: 4 (limit: 22901) Memory: 13.2M CGroup: /system.slice/tuned.service └─1012 /usr/bin/python3 -Es /usr/sbin/tuned -l -P

Active: active (running)と表示されれば正常です。tunedが起動していない場合は以下で有効化します。

# enable and start tuned (also persists after reboot) $ sudo systemctl enable --now tuned Created symlink /etc/systemd/system/multi-user.target.wants/tuned.service ...

2. 現在のプロファイルを確認する

$ tuned-adm active Current active profile: balanced

balancedはデフォルトのプロファイルです。特定のワークロードに最適化されていない状態を示しています。

3. 利用可能なプロファイル一覧を表示する

$ tuned-adm list 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 - 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 10G+ networks - powersave - Spin down storage devices, lower wakeups - 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: balanced

RHELのバージョンや追加パッケージの有無によって表示されるプロファイルは異なります。

4. プロファイルを切り替える

$ sudo tuned-adm profile throughput-performance $ tuned-adm active Current active profile: throughput-performance

コマンド1行でプロファイルが切り替わります。設定は永続化され、サーバー再起動後も維持されます。

5. 推奨プロファイルを自動提案させる

tuned-admには現在の環境に最適なプロファイルを推薦する機能があります。

$ tuned-adm recommend throughput-performance

ベアメタルサーバーではthroughput-performanceが推薦されることが多く、VMware・KVMなどの仮想マシン内ではvirtual-guestが推薦されます。まずrecommendで確認してから適用するのが安全です。

主要プロファイルの特徴と使い分け

RHELシステムで日常的に使う代表的なプロファイルを解説します。

throughput-performance(スループット優先)

データベースサーバー・バッチ処理・大量ファイル転送など、ネットワークやディスクのスループットを最大化したい場面で使います。主な設定内容:

・CPUガバナーをperformanceに設定(クロック周波数を最大値に固定)
・I/OスケジューラをMQ-Deadlineに変更(ディスクスループット向上)
・透過的ヒュージページ(THP)を有効化してメモリアクセス効率向上
・ネットワークバッファサイズを拡大(net.core.rmem_maxなど)

$ sudo tuned-adm profile throughput-performance $ tuned-adm active Current active profile: throughput-performance

latency-performance(レイテンシ優先)

リアルタイム処理・トレーディングシステム・APIレスポンスの安定性が重要なサーバーに使います。throughput-performanceとの大きな違いは、スループットよりも応答遅延の安定性を優先する点です。

・CPUガバナーをperformanceに設定
・透過的ヒュージページを無効化(THPはアロケーション時にレイテンシが跳ねる原因になるため)
・電源管理系のC-stateを無効化してCPUの応答を安定化

$ sudo tuned-adm profile latency-performance $ tuned-adm active Current active profile: latency-performance

【注意】virtual-guest(仮想マシン内での動作向け)

AWS EC2・VMware・KVM上のゲストOSとして動かすLinuxに使います。ハイパーバイザーとのリソース共有を前提に、不要なカーネル設定を減らして仮想デバイスとの相性を最適化します。

・透過的ヒュージページをmadviseに設定(ホスト側THPと干渉しない設定)
・ディスクのread-aheadを仮想ディスク向けに調整
・仮想デバイスドライバ向けに割り込みチューニング

$ sudo tuned-adm profile virtual-guest $ tuned-adm active Current active profile: virtual-guest

注意:仮想マシン内でthroughput-performanceを適用すると、ハイパーバイザーのスケジューリングと競合してパフォーマンスが逆に低下することがあります。EC2やVMware環境では必ずvirtual-guestを選んでください。

virtual-host(KVMホスト向け)

KVMハイパーバイザーとして動かすホストLinuxに使います。ゲストOSのCPUスケジューリング効率を上げるためのチューニングが含まれています。KVMサーバーを構築する際は、ホスト側にvirtual-hostを、ゲスト側にvirtual-guestをそれぞれ適用するのが基本構成です。

balanced(バランス型・デフォルト)

省電力と性能のバランスを取るデフォルトプロファイルです。特定のワークロードに特化しない汎用設定のため、開発環境・テスト環境・用途が定まっていないサーバーに適しています。本番サーバーに適用する場合は、ワークロードに合わせてthroughput-performanceかlatency-performanceへの変更を検討してください。

tuned-admが効かない時のトラブルシュート

「Cannot talk to tuned daemon」エラーが出る場合

tunedサービスが停止しています。

$ tuned-adm active Cannot talk to tuned daemon! # start and enable tuned service $ sudo systemctl start tuned $ sudo systemctl enable tuned $ tuned-adm active Current active profile: throughput-performance

プロファイルを変更しても効果が見えない場合

まずtuned-adm verifyで設定が実際に適用されているかを確認します。

$ sudo tuned-adm verify Verification succeeded, current settings match the preset profile.

「Verification failed, current settings do NOT match」と表示された場合は、sysctl.confや他のサービスがtuned設定を上書きしている可能性があります。/etc/sysctl.d/の設定ファイルとtunedの設定が競合していないかを確認してください。

透過的ヒュージページの適用状況は以下で確認できます。

# check transparent hugepage setting $ cat /sys/kernel/mm/transparent_hugepage/enabled always [madvise] never # 角括弧[]が現在の設定。madviseはvirtual-guestプロファイルが適用されている状態

再起動後にプロファイルが戻る場合

tunedサービスがenableになっていないか確認します。

$ systemctl is-enabled tuned disabled $ sudo systemctl enable tuned Created symlink /etc/systemd/system/multi-user.target.wants/tuned.service ...

systemctl enable --now tunedとすれば起動と永続化を同時に行えます。

特定のプロファイルが見当たらない場合

パッケージが未インストールの可能性があります。

# install tuned and additional profiles (RHEL/Rocky Linux/AlmaLinux) $ sudo dnf install tuned tuned-profiles-cpu-partitioning # restart tuned after installation $ sudo systemctl restart tuned $ tuned-adm list

本記事のまとめ

tuned-admコマンドの主要操作をまとめます。

やりたいこと コマンド
現在のプロファイルを確認 tuned-adm active
利用可能なプロファイル一覧 tuned-adm list
推奨プロファイルを確認 tuned-adm recommend
プロファイルを切り替える sudo tuned-adm profile throughput-performance
設定の適用確認 sudo tuned-adm verify
tunedを有効化して起動 sudo systemctl enable --now tuned

tuned-admは1コマンドでサーバーのパフォーマンスプロファイルを切り替えられる、実務で非常に役立つツールです。ワークロードの特性に合わせて選んでください。

・バッチ処理・データベース・ファイル転送が多い → throughput-performance
・APIレスポンスの安定性・低レイテンシが重要 → latency-performance
・AWS EC2・VMware・KVM仮想マシン内で動かす → virtual-guest
・KVMハイパーバイザーのホストOS → virtual-host

プロファイルを切り替えた後はtuned-adm verifyで適用確認を忘れずに行いましょう。

なお、サーバーのハードウェアスペックを把握してからプロファイルを選定するとより効果的です。dmidecode でハードウェア情報を取得すると、CPU・メモリ・ディスク構成を確認できます。チューニング後のシステム起動時間の変化はsystemd-analyze で起動時間計測してみてください。

tuned-admでチューニングできたら、次はサーバー全体の構築・運用スキルを体系的に固めませんか?

ネットの断片情報をつなぎ合わせるだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。