php-fpmの構成オプションと意味

1428 ワード


php 。
, 。 。

max_children
max_childrenはPHP-FPM Poolの最大のサブプロセス数で、彼の数値はあなたのサーバーメモリに依存します.現在構成されているPHP-FPM Poolに10 Gメモリを与えるつもりだとします.一般的に1つのPHPリクエストはメモリ10 M-40 Mを占有します.私たちはサイトごとにPHPリクエストごとにメモリ25 Mを占有します.このようにmax_children = 10G/25M = 409.だから、この値は状況に応じて算出できます.
max_requests
max_requestsは、サブプロセスごとに再生される前に処理されるリクエストの数であり、デフォルト値はunlimited(デフォルトは1024)であり、500程度の小さな設定が可能であり、メモリ漏洩による問題を回避することができる.
Nginxエージェントプロセスは、ビジネスサーバ要求データをローカルファイルにキャッシュし、ファイルデータを要求クライアントに転送します.高同時クライアント要求では、サーバファイルハンドルの同時オープン制限が必然的に要求されます.ulimitコマンド(ulimit-n)を使用して、Linuxシステムファイルハンドルの同時制限を表示します.デフォルトは1024です.65535(2の16乗、これはシステムポートの限界です).変更方法は、システムファイル/etc/security/limitsを変更します.confは、次の情報を追加し、システムを再起動して有効にします.
soft nofile 65535
hard nofile 65535

次に、Nginxプロファイルで、ファイル制限および接続数情報を65535に変更します.
worker_rlimit_nofile 65535;
events { 
   use epoll;
   worker_connections 65535;
}

request_terminate_timeout
サーバのパフォーマンスが十分で、ブロードバンドリソースが十分で、PHPスクリプトがループやBUGを結んでいない場合は、「request_terminate_timeout」は0 sに設定されています.
0 sの意味はPHP-CGIを時間制限なく継続させることである.それができない場合は、PHP-CGIにバグが発生したり、ブロードバンドが不足したり、他の理由でPHP-CGIが偽死したりする可能性がある場合は、「request_terminate_timeout」は、サーバのパフォーマンスに応じて設定できる値を与えます.一般的に性能が良ければ良いほど、20分から30分でも設定できます.私のサーバーPHPスクリプトは長時間実行する必要があるため、10分を超える可能性があるため、900秒を設定しました.これにより、PHP-CGIが死んで502 Bad gatewayというエラーは発生しません.