5

django を利用したサイトを展開する予定です。しかし、Apache、lighttpd、nginx などを含む Web サーバーの選択については混乱しています。

これらの各選択肢のパフォーマンスに関する記事をいくつか読みました。しかし、誰も同意しないようです。だから、自分でパフォーマンスをテストしてみませんか?

Web サーバーのパフォーマンスをテストする最適な方法に関する情報が見つかりません。だから私の質問は:

  1. 本番サイトなしでパフォーマンスをテストする簡単な方法はありますか?
  2. または、公正なテストを行うために、大量のトラフィックをシミュレートする方法を用意できますか?
  3. テストを公平に保ち、本番環境に近づけるにはどうすればよいですか?

テストの後、私は把握したい:

  1. 静的ファイルを提供するときにnginxのパフォーマンスが優れていると言う人がいる理由.
  2. 各 Web サーバーの CPU とメモリのニーズ。
  3. 私の最良の選択。
4

3 に答える 3

3

abのようなツールは、cacti/munin/システム監視ツールや、システムの負荷とリクエスト/秒に関するデータを生成できる選択肢とともに、一度に大量のリクエストからどれだけの負荷を受け取ることができるかをテストするためによく使用されます。これに関する問題は、コードのさまざまな部分が実行されるため、さまざまな時間がかかるため、多くの異なる要求を要求する必要があることをベンチマークしている多くの人が認識していないことです。リクエストではなくコードのプロファイリングとベンチマークも重要です。多くの人がすでに django で行っていることですが、benchrunも悪いツールではありません。

もう 1 つの問題は、各ページ ビューにかかる HTTP リクエストの数です。リクエストの量が少なく、処理が速いほど、大量のトラフィックを維持できる Web サイトを持つための鍵となります。接続をすばやく終了して閉じることができるほど、新しいものにリソースをすばやく割り当てることができます。

Web サーバーの一般的な速度に関しては、言うまでもなく、プロキシ サーバー (エンドで逆方向に実行されます) は、静的コンテンツを含む Web サーバーよりも常に高速に実行されます。django アプリに関する Apache と nginx に関しては、mod_python は実際に nginx/lighty + FastCGI よりも高速であるように見えますが、スピードアップに関係なく CGI はまだ遅いため、それは驚くことではありません。Web サーバーでコードを実行してキャッシュし、それを管理させることは、適切に行えば常に高速になります (mod_perl と CGI の使用、mod_php と CGI など)。

于 2009-09-17T09:38:12.257 に答える
2

Apache JMeterは、Web アプリケーションのストレス テストに最適なツールです。Apache だけでなく、任意の Web サーバーで使用できます。

于 2009-09-23T05:16:38.430 に答える
1

どこかのマシン、できれば最終的にデプロイするマシンと同様のハードウェア仕様を持つ物理マシンに、選択した Web サーバーと Web サイトをセットアップする必要があります。

次に、 The Grinder (無料)などの負荷テスト フレームワークを使用して、サイトを同時に使用する多くのユーザーをシミュレートする必要があります。

負荷テスト フレームワークは別のマシン上に配置する必要があり、これらのマシンのネットワークと CPU の使用率も監視して、テストの制限要因が実際に負荷インジェクターではなく Web サーバーであることを確認する必要があります。

それ以外は、コンテンツを変更し、応答時間、スループット、メモリ、CPU 使用率などを監視して、使用する Web サーバーとホストしているコンテンツの種類に応じてそれらがどのように変化するかを確認するだけです。

于 2009-09-17T09:38:44.703 に答える