4

私のサイトには、サーバーに存在しないいくつかの画像と css ファイルがあるため、訪問者が来るたびに、Apache はログに 3 404 エラーをスローします。アイテムはページ上で非表示になっているため、ページの表示には影響しません。私たちのサイトは、テスト環境と本番環境で問題なく動作します。最近、1 日あたり 30,000 ~ 40,000 人の訪問者が 2 日間にわたって急増し、Apache の速度が低下し、ブラウザーに何かを返す前に 22 ~ 25 秒待機しました。

ページでスローされた 404 エラーは、サーバーのパフォーマンスを変化させますか?

404 エラーは通常のリクエストよりも多くのリソースを消費しますか?

Apache が 404 エラーを処理する方法についての情報をいただければ幸いです。

ありがとう、Sj

4

3 に答える 3

2

Web サイトのフロント エンド エンジニアリングに関する yahoo の指示に従って

*404 なし

HTTP リクエストはコストがかかるため、HTTP リクエストを作成して役に立たない応答 (つまり、404 Not Found) を取得することはまったく不要であり、何のメリットもなくユーザー エクスペリエンスを遅くします。一部のサイトでは、「X のことですか?」という 404 が役に立ちます。これは、ユーザー エクスペリエンスには優れていますが、サーバー リソース (データベースなど) を浪費します。特に悪いのは、外部 JavaScript へのリンクが間違っていて、結果が 404 になる場合です。まず、このダウンロードは並列ダウンロードをブロックします。次に、ブラウザーは 404 応答本文を JavaScript コードであるかのように解析し、その中で使用可能なものを見つけようとします。

質問に戻りますが、エラー 404 により、最悪の場合、マシンが停止する可能性があります。

于 2012-03-30T11:51:32.217 に答える
0

コメンター ajreal が言ったように、提供されたドキュメントはリソース割り当てを増やしますが、リクエストに応答するサーバーはいくらかのリソースを取得します。

于 2010-12-10T18:34:22.617 に答える
0

ユーザー インタラクションへの応答として Apache が実行するアクションは、たとえそれが非常に小さくても、他のユーザーのパフォーマンスを低下させます。ほとんど目に見えません。

ソフトウェア (メモリに関して) とハードウェア (物理的な制限と容量に関して) の両方が、適切に応答したり、ユーザーの操作をログに記録したりするために、いくつかのアクションを実行します。

この場合、ユーザー (30,000 ~ 40,000 人) がサイトにアクセスしたときに、構成によって設定されたログ設定を満たすために、Apache はこれらすべてのエラーをログに記録する必要がありました。ログ ファイルはガード ディスク上の単なるテキスト ファイルであるため、ハード ディスクがビジーで、実際のサイト コンテンツの読み取りと書き込みを実行できませんでした。

Apache が 404 エラーをドキュメントとして返すと、サーバーの負荷はさらに高くなります。いずれにせよ、サーバーのパフォーマンスを向上させる最善の方法は、404 エラーを完全に取り除くことです。

また、Apache 構成ファイルの MaxRequestsPerChild パラメータを 1000 前後に増やして、1 つの中央 Apache プロセスから複数のサブプロセスへのストレスを軽減することもできます。これにより、複数の Apache プロセスが同時に新しいプロセスにまたがることができ、1 つだけでなくすべての CPU コアへのストレスが増加します。

非常に多くの訪問者がいるため、Apache 構成の MPM を次のように変更することもお勧めします。

<IfModule prefork.c>
StartServers       2
MinSpareServers    2
MaxSpareServers    5
ServerLimit        100
MaxClients         100
MaxRequestsPerChild  4000
</IfModule>
于 2011-03-21T15:09:13.883 に答える