Linuxのシステム設定を用途に最適化する方法(tuned)

Linuxのシステム設定を用途に最適化する方法(tuned)

RedHat系Linuxには、システムパラメーターを自動的に調整してくれる機能「tuned」が標準で搭載されています。

tunedには、用途に応じた複数のプロファイルが用意されており、システムの利用目的に応じて適切なプロファイルを選択することで、システムが稼働した状態でCPUやメモリ、ディスクIO周りのシステムパラメーターを動的に変更して、システムのパフォーマンスを最適化することができます。

そこでここでは、tunedを使ってLinuxのシステム設定をチューニングして、パフォーマンスを最適化する手順を紹介します。

tunedの使い方

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

tuned-adm listコマンドを実行すれば、適用可能なプロファイルのリストと現在適用されているプロファイルを確認できます。

適用可能なプロファイルには、さまざまな用途に合わせたプロファイルが用意されています。

  • デスクトップ向け
  • 高スループット向け
  • 低レイテンシー向け
  • 仮想マシン向け
  • 省電力向け など
# tuned-adm list

Available profiles:
- balanced
- desktop
- latency-performance
- network-latency
- network-throughput
- powersave
- throughput-performance
- virtual-guest
- virtual-host
Current active profile: virtual-guest

上の画面は、Hyper-V上のLinux仮想マシンで実行したので「virtual-guest」というプロファイルが適用されています。

プロファイルを変更する

適用するプロファイルを変更するときは、以下のようにコマンドを実行します。

# tuned-adm profile throughput-performance

上のコマンドでは「throughput-performance」というプロファイルを適用しています。

「throughput-performance」プロファイルは、ディスクおよびネットワークのパフォーマンスをアップできるプロファイルで、サーバー向けのプロファイルです。

選択可能なプロファイルは「/usr/lib/tuned」ディレクトリにあり、中身を確認するとカーネルパラメータが設定されていることがわかります。また、これらのプロファイルを元に自分のシステムに最適なカスタムプロファイルを作ることもできます。

ちなみに、プロファイル「virtual-guest」には「throughput-performance」が含まれています。

あとがき

自分の環境でプロファイルを「virtual-guest」から「throughput-performance」に変更し、ab(apache bench)で計測したところでは、残念ながらパフォーマンスに変化はありませんでしたが、物理サーバーにおいてはtunedでパフォーマンスアップを期待できると思います。

コマンドで簡単に切り替えることができるので、Linuxマシンのパフォーマンスを最適化するなら、試してみる価値はあるのではないでしょうか。

参考

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/power_management_guide/tuned