一部のロード ジェネレーターは数百万のリクエストの負荷を生成できると聞きましたが、TCP のポート数がわずか 65000 の場合、これはどのように可能でしょうか?
2 に答える
プロセス ベースでは、ツールに関係なく、単一の Load Generator を使用することはお勧めしません。テストの品質をチェックし、過負荷のジェネレーターを使用したテスト設計によるユーザーの低下をチェックするために、コントロール グループを含めることはほとんど不可能です。
少なくとも 3 つのジェネレーターを探します。プライマリ ロード用に 2 つと、テスト対象の各ビジネス タイプの単一の仮想ユーザーのコントロール グループ用に 1 つです。コントロール グループとグローバル グループが同じ速度で劣化する場合、その原因は外部、つまりテスト対象のアプリケーションにあると確信できます。一方、2 つのプライマリ サーバーの応答時間は低下するが、コントロール グループの応答時間は低下しない (またはより速くなる) 場合は、アプリケーションの低下として表示されるテスト設計の問題があります。リソースの課題についてテスト対象のアプリケーション/サイトを監視する必要があるのと同様に、ロード ジェネレーターでも同じことを行う必要があります。
同じリクエスト/レスポンス ウィンドウ内の数百万の同時リクエストが妥当でない理由はたくさんあります。
- 重いサイトのすべての静的コンポーネントは、世界中に分散された CDN ソリューションによって負担されます。CDN を介して ORIGIN サーバーにトンネリングされるリクエストの実際の数は、特にページ上のリクエストの優勢が静的コンポーネント、サードパーティ コンポーネント、およびマーケティング部門が執着する追跡ウィジェットであると考えると、非常に少ないはずです。
- これがインターネットに面したアプリケーションであり、大規模な人口の過負荷を防ぐためのプッシュ テクノロジを一切使用していないと仮定すると、1 億人をはるかに超えるオンライン ユーザーの人口セットがその時点ですべてのアクティビティに関与していることになります。人間は混沌とした道具であり、「今」で何かをするのは難しいです!!!!! 一瞬。HTTP アクセス ログを確認すると、この負荷が実際にどのように分散されているかがわかります。また、IP アドレスは、平均的なユーザー セッション期間の長さ、または 5 分間のブロック (どちらか見やすい方) 内の負荷の客観的なビューを提供することもできます。
- 非常に大規模なインターネット サイトの経験があります。全負荷をテストすることはありません。アプリケーション アーキテクチャの定義済みの「モジュール」またはサブセットに対して、スケーリングされた負荷をテストします。場合によっては、モジュールは、新しいリリースへのアップグレードおよびパフォーマンス テストのために本番定義から展開された 10 個の 42u ラックのグループであることに注意してください。そして、そのモジュールはインフラストラクチャの 5% である可能性があります。
したがって、50,000 でスライス/モジュール/ポッドを使用すると、最終的に 1,000,000 の同時実行は 5% に低下します。次に、その金額を 80% 減価償却して、現在 CDN レイヤーによって捕捉またはサービスされているものを考慮します (これはおそらく 80% を超えています)。これにより、10,000 の同時リクエストが可能になります。HTTP ログは、単一の要求/応答ウィンドウ内で発生している要求の正確なタイミングを確認できます。すべての 10K が正確に同時に存在する可能性は非常に低いです。