あるサブサイトが PHP で書かれている場合、時々 502 エラーが表示され、ピーク時間帯に発生する頻度が高くなります。ログを確認してください。 php-fpm を調べて、シグナル 7 (SIGBUS) で多数の子が終了したことを見つけます。これはアクセスログの 502 時間と完全に一致し、PHP プロセスの過負荷の可能性が排除され、APC の疑いが排除されます。
php プロセスはシグナルを受信した後に終了するため、分析のためにいくつかのコアダンプを取得してみてください:
まず、コアダンプの保存パスを設定し、十分なスペースがあることに注意してください。コアダンプはますます大きくなる可能性があるためです (たとえば、APC がオンで 1G に設定されている場合、1G になります)。 リーリー
次に、コアダンプを許可するように ulimit を変更します。リーリー
php-fpmを再起動します。 すぐに、/tmp/ ディレクトリに大量のコアダンプ ファイルが生成されます。それらを圧縮して、分析のためにオフラインに戻します。 必ずコアダンプを閉じてプログラムを再起動してください:リーリー
通常、コアダンプを分析するには gdb を使用するだけで十分です (バイナリ配布の場合は、最初に対応するデバッグ シンボル パッケージをインストールします)。 リーリーbt コマンドを実行してバックトレースを確認します (特定の情報を記録するのを忘れました)。いくつかのコアダンプを調べたところ、これらは基本的に lex ステージでハングしていることがわかりました。
PHP ソース コードについては何も調べていません。Google で「php sigbus lex_scan」を検索したところ、基本的に最初の 2 つのリンクから答えが得られました。
https://bugs.php.net/bug.php?id=52752
http://zecrazytux.net/troubleshooting/php-sigbus-crash-prestashop
確認するために、strace を使用して php プロセスの実行を追跡し、最終的にそれを捕捉しました。 リーリー
出典: http://blog.druggo.org/post/2013/05/02/%E4%B8%80%E4%BE%8Bphp%E8%BF%9B%E7%A8%8B%E7%9A% 84SIGBUS%E6%95%85%E9%9A%9C
http://www.bkjia.com/PHPjc/1131690.html
www.bkjia.com