PHPスクリプト実行時のNginxプロンプト502 PHP実行ログ表示exited on signal 9(SIGKILL)について

1212 ワード

解決策
サーバー構成のテスト:2コア4 G
1、まずPHPのphpを見ます.ini設定
max_execution_time = 120
memory_limit = 128M

max_execution_timeスクリプトの最大実行時間は、curlのタイムアウトが60など、60+を構成したほうがいいです.構成が大きいほうがいいです.このようにcurl 60 sがタイムアウトしても、set_time_limit(0);でタイマーをリセットすることができます.
memory_limitの設定はあなたのプロジェクトと関係があります.例えば、wpは128 Mをお勧めします.ここでは128 Mに設定します.どのくらいの設定が適当だと思いますか?実行に消費されるスクリプトにアクセスし、サーバはtopコマンドを実行し、%MEMの消費を観察します.
2、PHP-FPMの配置を見る
pm = static
pm.max_children = 20
pm.max_requests = 1000
request_terminate_timeout = 300s

pmモードはstatic、個人的な経験をお勧めします.拡張読書:https://www.jianshu.com/p/c9a028c834ff
pm.max_children=20この20はどうやって来たのか、うーん、サーバー4 Gのメモリは、実際に空きがあるのは3500 Mくらいでしょうか、3500/(128 x 1.2)=2.79、小さくすると20になります.理論的には、コンカレントはCPUのコア数にかかっていますが、計算型ならCPUのコア数、非計算型に設定して、空きメモリ/(スクリプト最大メモリ*1.2)で、小さくします.拡張読書:http://xiaohost.com/2614.html
pm.max_requestsは単一のサブプロセスの最大の処理量(サブプロセスの処理が終わると再起動する)であり、主に業務の需要を見て、メモリの消費が大きいので、小さく設定すると早くメモリを解放します.メモリの消費がなければ、大きく設定します.
request_terminate_timeoutこれはphpです.iniの中のmax_execution_timeスクリプトの最大タイムアウトに問題がある場合は、このパラメータを見て、時間が達するとサブプロセスが乾きます.
うーん、だから総じて言えば、NGINXヒント502、PHPヒントexited on signal 9(SIGKILL)は、PHP配置の問題によるものです.