セットアップ
PHP-FPMのプロセス数はいくつにすべきか
2026年8月20日
この記事はAIが下書きを作成しています。内容に誤りに気づいた場合はお問い合わせよりお知らせください。

レン
PHP-FPMの設定を見たら、プロセス数の項目があった。これって変えたほうがいいの?

プロクラ
小さいプランなら、変えたほうがいいことが多いよ。既定値は、もっと大きなサーバーを想定していることがあるからね。そのままだと、アクセスが増えたときにメモリを使い切ってしまう。
メモリが足りなくなると起きること
足りている
使用中空き
空きがあるうちは速い
足りない → ディスクへ退避(スワップ)
使用中退避
ディスクはメモリよりずっと遅い。ここから全体が重くなる
それでも足りない
OSがプロセスを強制終了する。データベースが落ちて、サイトが表示されなくなる
重い=CPU不足とは限らない。まずスワップが起きていないかを見る
上限を計算する

プロクラ
考え方は単純だよ。1プロセスがどれだけメモリを使うかを測って、使える分を割る。それが安全な上限になる。
- 実際に動いているプロセスの使用量を測る
- サーバー全体のメモリから、OSと他のソフトの分を引く
- 残りを、1プロセスあたりの使用量で割る
- その数より少なめを上限にする

プロクラ
2つめを忘れないでね。データベースも同じサーバーで動かしているなら、その分を確保しておく必要がある。全部をPHPに割り当てると、データベースが落とされることになる。
上限を超えるとどうなるか
- メモリを使い切り、OSがプロセスを強制終了する
- 多くの場合、いちばん大きいプロセス(データベース)が落ちる
- サイト全体が動かなくなる
- 上限を適切に設定していれば、待たせるだけで済む

プロクラ
4つめが重要な考え方だよ。上限に達したとき、断るか待たせるかで済むほうが、全部が落ちるよりずっとまし。上限を設けるのは、性能を抑えるためではなく、壊れ方を選ぶためなんだ。
動的と静的

プロクラ
プロセスの管理方式にもいくつかあるよ。必要に応じて増減させるか、最初から固定数を用意しておくか。それぞれ向き不向きがある。
- 動的: アクセスに応じて増減する。空いているときのメモリを節約できる
- 静的: 固定数を常に用意する。増減の手間が無いぶん応答が安定する
- アクセスが少なく、メモリも少ない環境 → 動的が向く
- 常時ある程度のアクセスがある → 静的でも扱いやすい
調整した後の確認
- 設定を変えたら、PHP-FPMを再起動する
- 実際のプロセス数と、メモリの使用量を確認する
- アクセスが増えたときに、待ちが発生していないか見る
- エラーログに、上限に達した旨の記録が出ていないか

プロクラ
4つめの記録が出ているなら、上限が足りていない可能性がある。ただし、上げる前にメモリの余裕を確認すること。数字だけ上げると、今度は落ちる側に戻ってしまうよ。

レン
測って割るだけなんだ。壊れ方を選ぶ、っていう考え方も納得。
Webサーバー側の設定と揃える

プロクラ
PHP側だけ調整しても、前段のWebサーバーが受け付ける数と噛み合っていないと意味が薄い。両方を見て決めよう。
- Webサーバーが同時に受け付ける数
- そのうち、PHPへ渡される割合
- 静的なファイルの配信は、PHPを経由しない
- 画像やCSSはWebサーバーが直接返すので、その分は数に含めなくてよい

プロクラ
3つめと4つめのおかげで、実際にPHPへ渡る数は思ったより少ないことが多いよ。アクセス数そのものより、動的なページの数で考えよう。
あわせて読みたい
- セットアップLinode (Akamai Connected Cloud)docker composeでコンテナが起動しない:ログの読み方起動直後に停止するコンテナの原因を、終了コードとログから特定します。設定の誤り・ポートの衝突・権限・依存関係という4つの型を解説します。
- セットアップLinode (Akamai Connected Cloud)コンテナからホスト側のサービスに繋がらないコンテナの中では127.0.0.1がコンテナ自身を指します。ホストのデータベースへ繋ぐ方法と、コンテナ同士の通信との違いを解説します。
- セットアップLinode (Akamai Connected Cloud)最初に監視すべき4つ:個人運用の最小構成何もかも監視しようとすると続きません。まず入れるべき4項目と、その理由、そして増やすかどうかの判断基準を解説します。
- セットアップLinode (Akamai Connected Cloud)通知が多すぎて読まなくなる警告に慣れてしまうと、監視は機能しなくなります。通知を減らす具体的な方法と、本当に必要な通知だけを残す設計の考え方を解説します。
サーバーを触る前に押さえておきたいこと
姉妹サイトの、この記事と相性のいいページです。
- Linuxコマンド入門
ls / cd / grep などを疑似ターミナルで試しながら学べる — prodou.net
- シェルスクリプト入門
サーバー作業の自動化スクリプトを基礎から — prodou.net
- Password Generator
サーバー用に強いパスワードをその場で生成 — toolkitbox.net
- Cron Generator
定期実行のcron式を組み立てる — toolkitbox.net