5

ハングする新しいサーバー構成をデバッグする方法についてのヒントが必要です。このサイト自体が Drupal の非常に大きなインスタンスです。APC 機能を使用して、ページの読み込みごとに 45 MB 以上の PHP メモリを使用できます。

サイト自体は、nginx/php-fpm/apc を使用して別のサーバーで実行されます。私がセットアップしている新しいサーバーには、カスタム PHP 5.3 ビルドがあります。

nginx はポート 80 でリッスンするように構成され、fastcgi リクエストを 127.0.0.1:9000 に渡します。これは機能します。

Drupal ルート ディレクトリには、phpinfo(); を含むプレーンな PHP ファイルがあります。初期化。この PHP ファイルを直接読み込んで、PHP のビルドが適切であることを確認できます。

nginx エラーはありませんが、ページがハングすると、php-fpm エラー ログに次のように表示されます。

[22-Dec-2012 17:41:16] 警告: [プール www] 子 19760、スクリプト '/var/www/mysite/public_html/index.php' (リクエスト: "GET /index.php") の実行が遅すぎる(5.068781 秒)、ロギング

このエラー以外には何もありません。

したがって、通常の PHP スクリプトは正常に読み込まれるが、Drupal アプリを読み込むと (きれいな URL を試してもいなくても、index.php に直接) ハングすることを考慮して、これをデバッグする方法についてのアドバイスを探しています。

4

1 に答える 1

5

php-fpm エラー ログにそのエラー ログ エントリが表示される場合、実際には遅い php プロセスの有用なスタック トレースを提供しています。

php-fpm 構成ファイル (例: /etc/php-fpm.d/www.conf) で、request_slowlog_timeoutとのslowlog設定を確認します。前者はリクエストが「遅い」と見なされるまでの秒数を定義し、後者はスタック トレースが書き込まれるファイルを定義します。

php-fpm のスローログ ファイルを見ると、プロセスがハングアップしているメソッド コール スタックの正確な場所が分かります。

于 2012-12-29T14:19:26.327 に答える