3

私の 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 の問題ですか?

4

3 に答える 3

0

Apache は、「1 秒あたり平均 1 ~ 3 ヒット」には大きすぎて扱いにくいです。

はるかに軽い(ほぼ静的なhtml、DBなし)サイトで同様の問題が発生し、同様のヒット/秒が発生したことがあります。エラーはなく、ネットワーク/CPU/メモリ/ディスクの負荷も高くありません。WinXP 上のアパッチ。

静的ファイルの Apache の前に nginx を挿入したところ、魅力的に機能し始めました。

于 2013-10-31T00:58:51.920 に答える
0

キャッシング。キャッシュするソリューション。

Drupal (他のほとんどの大規模な CMS プラットフォームと同様) は、その性質上、この種の傾向があります。すべてのページは、データベース テーブルとコード モジュールのスタック全体から構築され、オンザフライで構築されます。そこに入れれば入れるほど遅くなりますが、かなり単純なページでも、サイトに少しのトラフィックが発生すると、ひどく遅くなる可能性があります.

Drupal にはページ キャッシュ メカニズムが組み込まれているため、負荷が大幅に削減されます。ページが静的 (つまり、動的コンテンツがない) である限り、キャッシュをオンにするだけで、パフォーマンスがすぐに回復するのを見ることができます。

動的コンテンツがある場合でも、ページの静的部分のキャッシュを有効にすることができます。もう少し複雑です (この回答の範囲を超えています) が、努力する価値はあります。

それでも不十分な場合は、Varnishなどのサーバー ベースのキャッシュ ソリューションが役立ちます。

于 2013-11-01T12:36:00.160 に答える