私の Drupal 6 サイトは何年もの間スムーズに動作していましたが、最近断続的に非常に遅くなることがあります (10 ~ 60 秒のページ読み込み)。数時間の速度低下に続いて、通常の数時間 (4 ~ 6 秒) のページ読み込みが続きます。ページは常にエラーなしで読み込まれますが、場合によっては永遠にかかることがあります。
私のセットアップ:
- Windows Server 2003
- Apache/2.2.15 (Win32) Jrun/4.0
- PHP5
- MySql 5.1
- Drupal6
- コールドフュージョン 9
- VMware 仮想環境
- 企業ファイアウォールの背後にある DMZ
- トラフィック: 1 ~ 3 ヒット/秒のピーク
トラブルシューティング
- Apache エラー ログに該当するエラーはありません
- drupal イベント ログにエラーなし
- Drupal 開発モジュールは、366.23 ミリ秒で 242 のクエリを示し、ページの実行時間は 2069.62 ミリ秒です。(クエリとphpスクリプトは問題ではないようです)
- 異常に高い CPU、メモリ、またはディスク IO なし
- 常温核融合アプリ、および drupal 以外のその他の静的ページも読み込みが遅い
- webpagetest.org のテストでは、最初のバイトまでの時間が非常に長いことが示されています
問題はリクエストに応答する Apache にあるようですが、以前は 100% の CPU 負荷の下でのみこの動作を見たことがあります。リソースの監視のみから判断すると、ほとんど進行していないように見えます。
サイトへのアクセスの約半分は LAN からのものですが、ファイアウォール ルールを無効にしてネットワーク外からのアクセスをブロックすると、内部 (LAN) アクセス (1000 台以上のデバイス) が高速になります。しかし、外部からのアクセスが回復するとすぐに、サイトは機能しなくなります。
アパッチ構成?クローラー/ボット? 攻撃者?問題がどこにあるのかを判断するには、どこを調べればよいでしょうか?
- - - 編集: - - -
添付されているのは、15 秒の読み込み時間を示す webpagetest.org のウォーターフォール チャートです。私は数分もの時間を見てきました。繰り返しますが、サーバーはほとんどの場合正常に動作します。緑色の領域は、ブラウザがリクエストを送信し、サーバーからデータの最初のバイトが返されるのを待っていることを示しています。これは確かにバックエンドの遅延ですが、この遅延の間、CPU がほとんど使用されていないことは不可解です。
(画像を投稿するのに十分な担当者がいません。https://webmasters.stackexchange.com/questions/54658/apache-very-high-page-load-timeを参照してください)
- - - 編集 - - -
Apache 側では、これはおそらく ThreadsPerChild の問題ですか?