Apacheのチューニングについて

CentOS Stream 9
Apache/2.4.53

以下のサイトを参考にApacheのチューニング設定を行いましたが、サイトごとに説明が異なっている箇所があり自信がありません。

https://httpd.apache.org/docs/2.4/ja/mod/mpm_common.html
https://qiita.com/rryu/items/5e02ea60e36d7fd956b8
https://techmania.jp/blog/server0004/
https://www.miraclelinux.com/support/zbx-appliance/zbx-appliance-support/php-fpm-memory-problem
http://performance.oreda.net/middleware/web/apache-mpm

設定した /etc/httpd/conf.modules.d/10-mpmevent.conf の内容

<IfModule mpm_event_module> ServerLimit 4 StartServers 2 MinSpareThreads 32 MaxSpareThreads 48 ThreadLimit 16 ThreadsPerChild 16 MaxRequestWorkers 64 MaxConnectionsPerChild 16 </IfModule>

ServerLimit
httpdが使用できる総メモリ量は約400MBであり、1つのhttpdの子プロセスのメモリ使用量を計測したところ約100MBのため、「ServerLimit」は「4」にしました。

StartServers
サーバーのCPUのコア数が「2」のため、「StartServers」も「2」にしました。

MaxRequestWorkers
最大で64リクエストくらいは耐えられるのではないかと思い、「64」にしました。

ThreadLimit
(MaxRequestWorkers / ServerLimit)の値にしました。

MaxConnectionsPerChild
「MaxConnectionsPerChild」の適切な値がわかりません。ひとつの Connection で ひとつの Thread を使用すると認識しており、ThreadLimit と同じ値にしたのですが、間違っているしょうか。16にするとすぐに子プロセスが破棄されそうで不安です。しかし16より大きい値にするとプロセス全体で(4×16=64の値を超えるので) MaxRequestWorkers の値を超えてしまうのではないかと気にしています。

コメントを投稿

0 コメント