/etc/php-fpm.d/www.conf (RHEL/CentOS)
/etc/php/7.4/fpm/pool.d/www.conf (Ubuntu20.04)
Webサーバーとphp-fpmを実行するのが同じマシンであれば、UNIXドメインソケットを使ったほうが処理が速い
[www] listen = /var/run/php-fpm/php-fpm-www.sock user = www #プロセスの実行ユーザー group = www #プロセスの実行グループ listen.owner = nginx #ソケットのオーナー(Webサーバがソケットに対して読み書き可能にする) listen.group = nginx #ソケットのグループ listen.mode = 0660 #ソケットのパーミッション pm = static pm.max_children = 2 pm.max_requests = 1500
[www] listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1 user = nginx group = nginx pm = static pm.max_children = 2 pm.max_requests = 1500
staticがオススメです。
プロセスの起動に伴うオーバーヘッドがない。
## 2coreの設定例 pm = static pm.max_children = 2 ##同時に起動するプロセスの最大数 pm.max_requests = 1500 ## プロセスを再起動する処理リクエスト数
設定項目 | 説明 |
---|---|
pm.max_children | 同時に起動するプロセスの最大数 設定例:CPUコア数 |
pm.max_requests | プロセスを再起動する処理リクエスト数 多くのリクエストを処理すると、プロセスで使用するメモリがどんどん増大していくことがあり、 これを防ぐために、一定数リクエストを処理したプロセスを自動で再起動させることができます。 |
同時接続数が増え、プロセス数が足りなくなった時だけ、設定した範囲でプロセスが追加します。
## 2coreの設定例 pm = dynamic pm.max_children = 2 ##同時に起動するプロセスの最大数 pm.start_servers = 8 ##親プロセスの開始時に起動する子プロセスの数 pm.min_spare_servers = 4 ##アイドル状態のプロセス最小起動数 pm.max_spare_servers = 8 ##アイドル状態のプロセス最大起動数 pm.max_requests = 1500 ##プロセスを再起動する処理リクエスト数
設定項目 | 説明 |
---|---|
pm.max_children | staticを参照 |
pm.max_requests | staticを参照 |
pm.start_servers | 親プロセスの開始時に起動する子プロセスの数 コア数×4 |
pm.min_spare_servers | アイドル状態のプロセス最小起動数 リクエストの処理を待機しているプロセスを、最低限いくつ起動しておくかという設定 コア数×2 |
pm.max_spare_servers | アイドル状態のプロセス最大起動数 リクエストの処理を待機しているプロセスを、最大でいくつ起動しておくかという設定 コア数×4 |