Skip to content

Latest commit

 

History

History
17 lines (10 loc) · 2.53 KB

04-How-to-Stress-Test.md

File metadata and controls

17 lines (10 loc) · 2.53 KB

How to Stress Test

ストレステストは楽しいです。最初は、ストレステストの目的は、システムが負荷の下で動作するかどうかを調べることです。実際には、システムが負荷の下で動作するのは一般的ですが、負荷が十分に重い場合は何らかの方法で動作しません。私はこれを壁またはボンキング* [1] </ sup>に当てています。いくつかの例外があるかもしれませんが、ほとんど常に「壁」があります。ストレステストの目的は、壁がどこにあるかを把握し、壁をさらに遠ざける方法を理解することです。

ストレステストの計画は、期待されることを正確に明確にするのに役立つことが多いので、プロジェクトの早い時期に開発する必要があります。 Webページ要求が悲惨な失敗か成功したのは2秒ですか? 500人の同時ユーザーが十分ですか?それはもちろん、依存していますが、要求に答えるシステムを設計するときは答えを知る必要があります。ストレステストは、実用性を十分に発揮できるようにモデル化する必要があります。 500人の不安定で予測不能な人間をシステムを使って同時に簡単にシミュレートすることは実際には可能ではありませんが、少なくとも500のシミュレーションを作成し、それらが行う可能性のある部分をモデリングしようとします。

ストレステストでは、軽負荷で始動し、壁に当たるまで、入力速度や入力サイズなどの寸法に沿ってシステムをロードします。メモリ、プロセッサ、I / O、ネットワーク帯域幅、またはデータの競合は、壁があなたのニーズを満たすには近すぎる場合は、ボトルネックとなるリソース(通常は支配的なもの)を把握してください。次に、壁を動かす方法を見つけます。ウォールを動かす、つまりシステムが処理できる最大負荷を増やすことは、負荷の軽いシステムのパフォーマンスを低下させたり、実際に害する可能性があります。通常、負荷が軽い場合のパフォーマンスは、負荷が重い場合のパフォーマンスよりも重要です。

あなたはそれの精神的モデルを構築するために、いくつかの異なる次元を可視化しなければならないかもしれません。単一の技術で十分ではない。たとえば、ロギングでは、システム内の2つのイベント間のウォールクロック時間をよく知ることがありますが、慎重に構築しない限り、メモリ使用率やデータ構造サイズの可視性はありません。同様に、最新のシステムでは、多くのコンピュータと多くのソフトウェアシステムが協力している可能性があります。特に、壁に当たったとき(つまり、入力の大きさに応じてパフォーマンスが非直線的である)、これらの他のソフトウェアシステムはボトルネックになる可能性があります。参加しているすべてのマシンのプロセッサ負荷を測定するだけであっても、これらのシステムの可視性は非常に役立ちます。

壁がどこにあるかを知ることは、壁を動かすだけでなく、予測可能性を提供してビジネスを効率的に管理できるようにするためにも不可欠です。


[1] "to hit"

Next How to Balance Brevity and Abstraction