23

SiegeとABを使用した負荷テストの結果にどれだけ信頼できるか知りたいです。静的アセット(画像、JS、CSS)が考慮されていないことはわかっていますが、すべてがCDNから提供されると仮定すると、Siege / ABが200人の同時ユーザーに対応できると言った場合、私がすべきではない理由があります信用しませんか?テストを実行しているマシンにある可能性のある制限など、他の要因を考慮していませんか?

4

1 に答える 1

37

Siegeこれは、テストを実行または入力しようとすることの落とし穴について説明し、ab負荷がかかった状態で Web アプリケーションまたは Web サイトがどれだけうまく機能するかを要約した、非常に優れた記事です。

http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento-performance/

このタイプのテストを行う際の問題を提起する、そのページのいくつかの箇条書きを次に示します。

  • Siege は、実際のユーザー (または複数のユーザー) が Web サイトで実際に行っていることを表すものではありません。ページ内の他のすべての要素 (画像、CSS、JS、またはその他の静的コンテンツ) ではなく、生の応答コードと HTML のみを読み込むことができるため、効率的に PHP のパフォーマンスのみをテストします。

  • また、セッション/Cookie のサポートは非​​常に限定されており、パイプラインはサポートされておらず、HTTP/1.1 の基本的なサポートも提供されています。それが生成している負荷は、実際のユーザーの負荷とはまったく異なります。そのため、変更後のクイック リファレンスには適しています。実生活でユーザーにとって何かが変わることを実際に示しているわけではありません。

  • Siege は簡単にだまされます。提供されている静的ファイル (つまり、純粋な HTML ファイル) と動的ファイル (つまり、動的な Magento PHP ページ) を区別できません。そのため、何らかの静的ファイル プロキシを実行している場合、結果はすぐに歪められます。この時点では、キャッシング プロキシのみをテストし、その背後にある配信速度はテストしません。

  • したがって、Varnish、Nginx キャッシング、mod_pagecache を使用している人は、ページをキャッシュに簡単にバッファリングするだけで、20 ミリ秒未満のレンダリング時間が表示されます。Varnish を使用している場合は、Siege を使用してパフォーマンスをテストします。まったく同じ結果が得られるため、カテゴリ URL ではなく画像をロードすることもできます。

  • リモート サーバーのテストは、並行性テスト (つまり、繰り返し処理できる要求の数) であるため、ほとんど意味がありません。差し迫ったボトルネックは、2 台のマシン間のネットワーク接続です。レイテンシーと TCP/IP のオーバーヘッドは、リモート サイトのテストを完全に無意味なものにします。2 つのサーバー間のピア間でわずかなネットワークの輻輳が発生すると、すぐにパフォーマンスの低下が見られます。したがって、実際に問題になり始めるのは、TCP 3 ウェイ ハンドシェイクをどれだけ速く完了できるかということです。テスト対象のサーバーは、動的ページまたは静的 0 バイト ファイルを提供している可能性があります。接続性がボトルネックです。

この記事で彼らが議論している、Web サイトの全体的なパフォーマンスに最も劇的な影響を与える可能性があるもう 1 つの問題は、サイトとそれにアクセスするクライアントとの間の遅延です。彼らは、レイテンシーがサイトのパフォーマンスにどのように影響するかについて、エンド ユーザーが感じる方法とSiegeabテスト ツールの種類が公開されることのない方法について、適切に説明しています。

再び記事を抜粋します:

英国から英国への Ping

[~]$ ping www.bytemark.co.uk -c4
PING www.bytemark.co.uk (212.110.161.177) 56(84) bytes of data.
64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=1 ttl=57 time=2.86 ms
64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=2 ttl=57 time=2.51 ms
64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=3 ttl=57 time=2.54 ms
64 bytes from extapp-front.bytemark.co.uk (212.110.161.177): icmp_seq=4 ttl=57 time=2.63 ms
--- www.bytemark.co.uk ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 2.515/2.641/2.869/0.142 ms

英国から米国への Ping

[~]$ ping www.mediatemple.net -c 4
PING www.mediatemple.net (64.207.129.182) 56(84) bytes of data.
64 bytes from mediatemple.net (64.207.129.182): icmp_seq=1 ttl=49 time=158 ms
64 bytes from mediatemple.net (64.207.129.182): icmp_seq=2 ttl=49 time=154 ms
64 bytes from mediatemple.net (64.207.129.182): icmp_seq=3 ttl=49 time=154 ms
64 bytes from mediatemple.net (64.207.129.182): icmp_seq=4 ttl=49 time=154 ms

--- www.mediatemple.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 154.155/155.282/158.321/1.802 ms

性能の違いはすぐにわかります。英国から米国への単一の TCP/IP 接続の場合、156 ミリ秒かかり、英国のサーバーへの接続よりも 62 倍長くなりました。つまり、何かを試す前に、Siege で 1 秒間に達成できる最大スループットは、レイテンシーだけで 1 秒あたり約 6 トランザクションになることを意味します。

記事全体を読むことを強くお勧めします。Siegeやなどのツールを使用してパフォーマンス テストを行う際の落とし穴をうまく説明していますab

于 2013-01-12T03:36:10.523 に答える