web-dev-qa-db-ja.com

PHP5-FPMpm.max_childrenはRAMまたはCPU + RAMに影響しますか?

最近、Nginx + PHP5-FPMサーバーを継承しました。私は、PHP5-FPM設定を学習して最適化しようとしています。

サーバー情報:

4 CPUs (8 threads)
7.5 GiB RAM

PHP5-FPM情報:

pm.max_children = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 3
;pm.process_idle_time = 10s;
;pm.max_requests = 500

(max_requests行のコメントを解除します。これは、推奨される方法のようです。)

Webサイトに負荷がかかっている場合、各PHP5-FPMプロセスのCPU使用率は非常に高くなりますが、プロセスの使用率が1%を超えることはまだありませんRAM)。

私が見るところはどこでも(例えば herehere )、RAMによって制限されるpm.max_childrenの増加についてのみ話し、CPU使用率については言及していません。

私の場合、pm.max_childrenを増やすと、RAMバウンド?よりもCPUバウンドが多いという事実に基づいて、Webサイトのパフォーマンスが向上または低下しますか?言い換えると、pm.max_childrenが増加すると、RAM唯一の考慮事項ですか、それともCPUも影響を受けますか?

[編集]重複ではありません:質問は基本的に最後の文に要約されます。つまり、notキャパシティプランニングに関するアドバイスを求めます。 CPU使用率がpm.max_children設定で考慮されているのか、それとも単にRAM増加しているのか)を尋ねています。

2
Anthony F.

PHPスクリプトが何をしているかによりますが、5はPHPプロセスの数が非常に少ないです。通常、PHPプロセスはMySQLへの接続を開き(時間がかかります)、MySQLがクエリを処理するのを待ちます(時間がかかります)、したがって、CPUを常に使用するわけではなく、5つのプロセスしかない場合、CPUはしばらくアイドル状態になる可能性がありますが、他のPHPプロセスを使用することはありません。したがって、制限を少なくとも20〜30(または、受け取るmanuy req/sに応じてそれ以上)に安全に増やすことができます。

CPU使用率に関する質問について。よりアクティブなPHPプロセスを同時に実行しても、CPU使用率は増加しません。使用可能なすべてのCPUパワーは、実行中のプロセス間で分割されます。

0
Marki555

私の見解では、あなたの子供の制限は低すぎます。十分なメモリがある場合(そして各子が通常少量しか消費しない場合)、子の数は少なくともコア* 2に設定する必要があります。 max-childrenを32に設定することをお勧めします。

0
drookie