ベンチマークは、システム設計のストレス テストの一種です。
2.1 ベンチマークが必要な理由
- ベンチマークは一連のタスクを完了できます。詳細については、35 ページを参照してください。
- 新しいシステムを本番環境に正式に導入する前に、ベンチマーク テストを実施することをお勧めします。
- ベンチマークがシステムに与えるストレスは、通常、実際のストレスよりも単純です。
- ベンチマーク テストは可能な限りシンプルかつ簡単である必要があり、結果を簡単に比較でき、低コストで実装が簡単である必要があります。
2.2 ベンチマークの戦略
- ベンチマークには、フルスタックとシングルコンポーネントの 2 つの主な戦略があります。どのような状況で異なる戦略を使用するかについては、37 ページを参照してください。
- 主なテスト指標は、スループット (スループット)、応答時間または遅延 (レイテンシ)、同時実行性 (同時実行)、スケーラビリティ (拡張性) です。最終的には、ユーザーにとって最も重要な指標をテストすることになります。
2.3 ベンチマーク方法
- フルセットではなく実際のデータのサブセットを使用する/実際のユーザーの動作と一致しない/システムのウォームアッププロセスを無視するなど、よくある間違いを避けるには、詳細については 40 ページを参照してください。
- ベンチマーク テストを設計および計画するには、最初のステップは質問をして目標を明確にすることです。次に、データに対してクエリを実行します。パラメータと結果を文書化するための仕様を確立し、テストの各ラウンドを詳細に記録する必要があります。
- 主にCPU使用率、ディスクI/O、ネットワークトラフィック統計、SHOW GLOBAL STATUSカウンターなどを含むシステムパフォーマンスおよびステータスインジケーターを取得します。これらはシェルスクリプトを通じて実現でき、awkやsedなどのスクリプトを通じて簡素化された操作が可能です。
- ベンチマーク テストの結果を取得する 一般的なテストの実践では、最良の結果値、すべての結果の平均、または 5 つのテスト結果から最良の 3 つの値の平均を取得できます。
- 結果を視覚的に表示するには、グラフィックスを使用できます。本で言及されているツールは gnuplot です。
2.4 ベンチマークツール
- この本で紹介されている統合テスト ツールは、ab(Apache HTTP)、http_load、JMeter です。
- この本で紹介されている単一コンポーネントのテスト ツールは、mysqlslap、MySQL Benchmark Suite (MySQL ビルトイン)、Supter Smack、Database Test Suite、Percona の TPCC-MySQL Tool、sysbench です。詳細は 50 ページを参照してください。