WordPress用に、tunedでamazon linux2のOS設定のチューニング

WordPressを早めるために、サーバーサイドの設定もいじってみます。

微々たるものですが、チリツモ。

tunedを入れる

amazon linux2ではtunedが入っていないので、まずは入れる

yum install tuned

起動時の設定を入れる。

systemctl enable tuned

入れ終わったら、tunedでなにが入れられるかを見てみる。

[root@ ~]# tuned-adm list
Available profiles:
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- 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

まぁ、いろいろありますが、WordPressとして使うサーバーであれば、ディスクとネットワーク I/O のスループットのパフォーマンスを向上させるため、throughput-performanceを選択してよいかと。

設定方法は以下のように。

tuned-adm profile throughput-performance

設定している値の確認

こんな感じ


latency-performanceの設定 標準的な遅延パフォーマンスチューニング用のサーバープロファイルです。これは、tuned と ktune の省電力メカニズムを無効にし、cpuspeed モードが performance に変更されます。各デバイスで I/O エレベーターが deadline に変更されます。cpu_dma_latency パラメーターは 0 の値 (最低の待ち時間) で登録され、可能な範囲で Power Management Quality-of-Service が電源管理の待ち時間を制限します。 + kernel.sched_min_granularity_ns (スケジューラーの最小先取り粒度) が 10 ミリ秒に設定されます。 kernel.sched_wakeup_granularity_ns (スケジューラーのウェイクアップ粒度) が 15 ミリ秒に設定されます。 vm.dirty_ratio (仮想メモリーダーティー率) が 40% に設定されます。 Transparent huge pages が使用可能になります。

中身を見てみる。

[root@ ~]# sysctl -a | grep dirty_ratio
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.dirty_ratio = 40

[root@ ~]# sysctl -a | grep sched_wakeup_granularity_ns
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
kernel.sched_wakeup_granularity_ns = 15000000

ぉぉ、確かに設定どおりに。これでOSの設定もWordPress用に出来ました。もっと細かくこうしたほうがいい!ってのがあれば、詳細の値を入力するのも手ですが、ひとまずはこれで大丈夫でしょう。