ホームページ  >  記事  >  バックエンド開発  >  NGINX+PHP-FPM が ptrace(PEEKDATA) 入出力エラーに失敗する問題を解決

NGINX+PHP-FPM が ptrace(PEEKDATA) 入出力エラーに失敗する問題を解決

WBOY
WBOYオリジナル
2016-06-23 13:18:121633ブラウズ

不正なゲートウェイ プロンプトが常に Web サイトに表示されますが、時々表示されない場合があります。ログを確認したところ、次のようなエラーが多数見つかりました

[29-Mar-2014 22:40:10] エラー: 失敗しました。 ptrace (PEEKDATA) への pid 4276: 入力/出力エラー (5)

[29-Mar-2014 22:53:54] エラー: ptrace(PEEKDATA) に失敗しました pid 4319: 入力/出力エラー (5)

[ 29- Mar-2014 22:56:30] エラー: ptrace(PEEKDATA) に失敗しました pid 4342: 入出力エラー (5)

[29-Mar-2014 22:56:34] エラー: ptrace(PEEKDATA) に失敗しました) pid 4321: 入出力エラー (5)

[29-Mar-2014 22:56:40] ERROR: failed to ptrace(PEEKDATA) pid 4314: 入出力エラー (5)

私もたくさん見つけましたインターネット上の方法では、多くの人が rlimit_files の開いているファイルの数に問題があると言っていますが、最終的に Gui Lao を見つけたとしても、それはある程度意味があるようです。

http://serverfault.com/questions/406532/i-o-error-with-php5-fpm-ptracepeekdata-failed

request_slowlog_timeout が有効になっているようです。これは通常、N 秒を超えるリクエストを受け付け、それがログに記録されます。長い時間がかかっている場合、スクリプトのスタック トレースをログに記録して、何が行われていたのかを確認できます。プロセスが不足しています。これは次のいずれかの理由が考えられます:

php-fpm がプロセスを停止してトレースした後、トレースエラーのためプロセスは再開できません

  1. プロセスは再開していますが、実行を続けています

  2. 私の最初の推測は、request_slowlog_timeout を無効にすることです。正しく機能していないため、これでプロセス不足の問題が解決しない場合は、php.ini を設定します。 max_execution_time を確実にスクリプトを強制終了するものにします

  3. slowlog を開いてから request_slowlog_timeout パラメータを設定したため、php が実行される前にエラーが発生したようです。 。

上記の解決策は次のとおりです:

php-fpm.conf で request_slowlog_timeout と throwlog を無効にしてから、php.ini の max_execution_time パラメータを変更します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。