sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/O モードを正確にシミュレートできる優れたベンチマーク ツールです。したがって、sysbench のこの機能に基づいて、このツールを以下で使用して、単純なトランザクション処理ワークロードから複雑なトランザクション処理ワークロードまで MySQL データベースのサポートをベンチマークおよび検証します。
テストシナリオ 1、OLTP 読み取りベンチマークテスト
1) データを準備します
sysbench --test=oltp--mysql-table-engine=innodb --oltp-table-size=100000
--mysql-db= cbusdb --mysql-user=root 準備
2) OLTP ランダム読み取り一貫性ビジネス シナリオ テスト検証
time sysbench --test=oltp --oltp-table-size=100000--mysql-db=cbusdb
- - mysql-user=root --max-time=60--oltp-read-only --max-requests=0 --num-threads=8 run
上記のテストは、最大リクエスト 10,000 で 8 つの同時スレッドをシミュレートします。回/秒、単一のテーブル データ セット内のデータ量が 100,000 項目のテーブルに対してランダム読み取り操作が 60 秒間実行されました。テスト結果は次のとおりです。
8 人の同時ユーザーをシミュレートすることにより、一貫した読み取りが行われました。操作はデータ量 100,000 項目のテーブルに対して実行されました。上の図と組み合わせると、分析により次の結論が得られます:
1) 60 秒以内に合計 766,094 件の読み取りリクエスト、109,442 件の更新リクエストおよびその他の種類のリクエストが実行されました。 、QPS: 12765;
2) 60 秒以内に合計 54721 のトランザクション操作が実行されました、TPS: 911、成功率 100%
3) 各トランザクションの最小実行時間は 2.98 ミリ秒、最大時間は 184.5 ミリ秒です。ミリ秒であり、平均実行時間は 8.76 ミリ秒です。
上記のテスト結果の実行環境の基本構成情報:
1) 仮想マシン 2 CPU、2G メモリ、20G ストレージ容量;
2) MySQL データベース パラメーターは最適化または調整されていません。
テスト シナリオ 2、OLTP 混合タイプの負荷テスト
OLTP のランダム読み取りおよび書き込み (更新、削除、挿入) をシミュレートします:
sysbench --test=oltp--mysql-table-engine=innodb --oltp-table-サイズ=10000
--mysql-db=cbusdb --mysql-user=root--max-time=60
--oltp-nontrx-mode=update_key--max-requests=0 --num-threads= 8 回の実行
テスト結果は次のとおりです:
8 人の同時ユーザーをシミュレートして、100,000 個のデータ項目を持つテーブルで複雑な混合ワークロード テストをシミュレートし、上記の図と組み合わせることで、分析により次の結論が導き出されます。
1) 合計 233268 件の読み取りリクエスト、83260 件の書き込みリクエスト、その他のタイプのリクエスト: 33309、QPS: 5273 が 60 秒間で実行されました
2) 合計 16647 件のトランザクション操作が 60 秒間で実行されました、TPS: 277、デッドロックロックの競合が原因です。数は 15 で、トランザクションの成功率は 99.91% です。
3) 各トランザクションの最小実行時間は 8.19 ミリ秒、最大時間は 1299.78 ミリ秒、平均実行時間は 28.82 ミリ秒です。
上記のテスト結果の実行環境の基本構成情報:
1) 仮想マシン 2 CPU、2G メモリ、20G ストレージ容量;
2) MySQL データベース パラメーターは最適化または調整されていません。