2012-12-22 3 views
5

ハングする新しいサーバー設定をデバッグする方法に関するヒントが必要です。このサイト自体はDrupalの非常に大きなインスタンスです。 APCが機能しているページ読み込みあたり45MB以上のPHPメモリと同じくらい大きいハングするサイトのnginx/php-fpmをどのようにデバッグできますか?

サイト自体は、nginx/php-fpm/apcを使用して別のサーバで動作します。私が設定している新しいサーバにはカスタムPHP 5.3ビルドがあります。

nginxはポート80でリッスンするように設定され、fastcgi要求を127.0.0.1:9000に渡します。これは機能します。

Drupalルートディレクトリには、phpinfo()を使用したプレーンなPHPファイルがあります。その中に。私はこのPHPファイルを直接読み込んで、PHPビルドがよく見えることを確認できます。

そこにはnginxのエラーはありませんが、ページがハングアップとしてPHP-FPMエラーログがこれを表示します:[プールWWW]子供19760:

[22〜12月 - 2012年午後5時41分16秒] WARNINGスクリプト '/var/www/mysite/public_html/index.php'(リクエスト:「GET /index.php」)が遅すぎる(5.068781秒)、ログ記録

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

だから私は、通常のPHPスクリプトを考慮し、これをデバッグする方法についてのアドバイスを探しています罰金ロードしますが、Drupalのアプリケーションをロードする(直接のindex.phpに、でもきれいなURLをしようとしていない)がハングします。

+1

は、リモートプロファイリングを行うにはXdebugを使用してのようなよりよい方法をありますが、標準wquick-N-汚れは、それが5分のアプローチで行われます。 – goat

答えて

4

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

php-fpm設定ファイル(例:/etc/php-fpm.d/www.conf)にrequest_slowlog_timeoutslowlogの設定を見てください。最初は、要求が「遅い」とみなされるまでの秒数を定義し、後者は、スタックトレースが書き込まれるファイルを定義します。

php-fpm slowlogファイルを見ると、プロセスがスタックしているところのメソッド呼び出しスタックのどこにあるのかを正確に知ることができます。ただ、ログファイルに役立つ情報を印刷文でスクリプトを振りかけることです

関連する問題