MySQLベンチマークテスト
2872 ワード
一、定義:
ベンチマークテストは、システムにソフト・ハードウェアの変化が発生した場合にベンチマークテストを再実行し、変化がパフォーマンスに及ぼす影響を評価するために、ソフトウェアのパフォーマンス指標を測定および評価するアクティビティです.
二、比較
ベンチマークテスト:直接、簡単、比較が容易で、サーバーの処理能力を評価するために業務ロジックに関心を持たなくてもいい.使用したクエリーと業務の真実性と環境は関係ない圧力テスト:真実業務データに対してテストを行い、システムが耐えられる真実圧力を得るには異なるテーマに対して、使用したデータとクエリーも真実に使用する
三、目的:
MySQLサーバーの性能基準線を創立して現在のMySQLサーバーの運行状況を確定して現在のシステムよりもっと高い負荷を模擬して、システムの拡張ボトルネックを探し出してデータベースの同時を増加して、QPSを観察して、TPSの変化、同時量と性能の最適化の関係を確定して異なるハードウェア、ソフトウェアとオペレーティングシステムの配置が新しいハードウェア設備が正しく配置するかどうかを証明します
四、基準テストの方法
1、全体のシステムに対してベンチマークテストの利点:全体のシステムの性能をテストすることができて、webサーバーのキャッシュ、データベースなどを含んでシステムの中の各コンポーネントのインタフェースの间の性能の问题を反応することができて真実な性能の状况の欠点を体現することができます:テストの设计は复雑で、时间の长い2、単独でMySQLに対してベンチマークテストの利点を行います:テストの设计は简単で、所要時間不足点:システム全体の性能ベースライン5、MySQLベンチマークテスト共通指標1、TPS:単位時間当たりのトランザクション数2、QPS:単位時間当たりのクエリ数3、レスポンス時間平均レスポンス時間、最小レスポンス時間、最大レスポンス時間、時間当たりの割合4、≪コンカレント量|Concurrent Amount|oem_src≫:同時に処理される問合せ要求の数(リンク数に等しくない)作業中のコンカレント・アクションまたは同時作業の数
六、基準テストの手順
1、計画と設計基準テスト(目標、データ、時間、回数)システム全体に対してどのようなデータを使用するか基準テストとデータ収集スクリプトCPU使用率、IO、ネットワークトラフィック、状態とカウンタ情報など2、基準テストを実行する
七、基準テストで見落としやすい問題
1、本番環境データを使用する場合、一部のデータ(リアルデータベースの完全バックアップでテストすることを推奨)のみを使用する2、マルチユーザのシーンでは、シングルユーザのテスト(マルチスレッドの同時テストを推奨する)のみを行う3、シングルサーバ上で分散アプリケーションをテストする4、同じクエリを繰り返し実行する(キャッシュヒットしやすく、リアルクエリのパフォーマンスに反応しない)
八、MySQLベンチマークテストツールとソフトウェア
1、mysqlslap(MySQLに付属)の特徴:サーバー負荷をシミュレートし、関連統計を出力することができるクエリー文の常用パラメータ説明を自動的に生成することができる--auto-generate-sql//システムによって自動的にSQLスクリプトを生成してテストを行う--auto-generate-sql-add-autoincrement//生成した表に自己増加ID(innodb推奨)を追加する--auto-generate-sql-load-type//テストで使用するクエリーのタイプを指定する--auto-generate-sql-write-number//データの初期化時に生成されるデータ量を指定する--concurrency//同時スレッドの数を指定する--engine//テーブルをテストするストレージエンジンを指定します.複数のストレージエンジンをカンマで分割できる--no-drop//テストデータをクリーンアップしない--iterations//テスト実行回数を指定できます(--no-dropで競合し、同時に指定できません)--number-of-queries//スレッドごとに実行されるクエリーの数を指定する--debug-info//出力の余分なメモリとCPU統計を指定する--number-int-cols//テストテーブルに含まれるINTタイプ列の数を指定する--number-char-cols//テストテーブルに含まれるvarcharタイプの数を指定する--create-schema//テストを実行するデータベースの名前を指定する--query//指カスタムSQLのスクリプト--only-print//テストスクリプトを実行せずに、生成したスクリプトだけを印刷します2、Sysbenchダウンロードアドレス:https://github.com/akopytov/sysbench/archive/0.5.zip インストール:
ベンチマークテストは、システムにソフト・ハードウェアの変化が発生した場合にベンチマークテストを再実行し、変化がパフォーマンスに及ぼす影響を評価するために、ソフトウェアのパフォーマンス指標を測定および評価するアクティビティです.
二、比較
ベンチマークテスト:直接、簡単、比較が容易で、サーバーの処理能力を評価するために業務ロジックに関心を持たなくてもいい.使用したクエリーと業務の真実性と環境は関係ない圧力テスト:真実業務データに対してテストを行い、システムが耐えられる真実圧力を得るには異なるテーマに対して、使用したデータとクエリーも真実に使用する
三、目的:
MySQLサーバーの性能基準線を創立して現在のMySQLサーバーの運行状況を確定して現在のシステムよりもっと高い負荷を模擬して、システムの拡張ボトルネックを探し出してデータベースの同時を増加して、QPSを観察して、TPSの変化、同時量と性能の最適化の関係を確定して異なるハードウェア、ソフトウェアとオペレーティングシステムの配置が新しいハードウェア設備が正しく配置するかどうかを証明します
四、基準テストの方法
1、全体のシステムに対してベンチマークテストの利点:全体のシステムの性能をテストすることができて、webサーバーのキャッシュ、データベースなどを含んでシステムの中の各コンポーネントのインタフェースの间の性能の问题を反応することができて真実な性能の状况の欠点を体現することができます:テストの设计は复雑で、时间の长い2、単独でMySQLに対してベンチマークテストの利点を行います:テストの设计は简単で、所要時間不足点:システム全体の性能ベースライン5、MySQLベンチマークテスト共通指標1、TPS:単位時間当たりのトランザクション数2、QPS:単位時間当たりのクエリ数3、レスポンス時間平均レスポンス時間、最小レスポンス時間、最大レスポンス時間、時間当たりの割合4、≪コンカレント量|Concurrent Amount|oem_src≫:同時に処理される問合せ要求の数(リンク数に等しくない)作業中のコンカレント・アクションまたは同時作業の数
六、基準テストの手順
1、計画と設計基準テスト(目標、データ、時間、回数)システム全体に対してどのようなデータを使用するか基準テストとデータ収集スクリプトCPU使用率、IO、ネットワークトラフィック、状態とカウンタ情報など2、基準テストを実行する
七、基準テストで見落としやすい問題
1、本番環境データを使用する場合、一部のデータ(リアルデータベースの完全バックアップでテストすることを推奨)のみを使用する2、マルチユーザのシーンでは、シングルユーザのテスト(マルチスレッドの同時テストを推奨する)のみを行う3、シングルサーバ上で分散アプリケーションをテストする4、同じクエリを繰り返し実行する(キャッシュヒットしやすく、リアルクエリのパフォーマンスに反応しない)
八、MySQLベンチマークテストツールとソフトウェア
1、mysqlslap(MySQLに付属)の特徴:サーバー負荷をシミュレートし、関連統計を出力することができるクエリー文の常用パラメータ説明を自動的に生成することができる--auto-generate-sql//システムによって自動的にSQLスクリプトを生成してテストを行う--auto-generate-sql-add-autoincrement//生成した表に自己増加ID(innodb推奨)を追加する--auto-generate-sql-load-type//テストで使用するクエリーのタイプを指定する--auto-generate-sql-write-number//データの初期化時に生成されるデータ量を指定する--concurrency//同時スレッドの数を指定する--engine//テーブルをテストするストレージエンジンを指定します.複数のストレージエンジンをカンマで分割できる--no-drop//テストデータをクリーンアップしない--iterations//テスト実行回数を指定できます(--no-dropで競合し、同時に指定できません)--number-of-queries//スレッドごとに実行されるクエリーの数を指定する--debug-info//出力の余分なメモリとCPU統計を指定する--number-int-cols//テストテーブルに含まれるINTタイプ列の数を指定する--number-char-cols//テストテーブルに含まれるvarcharタイプの数を指定する--create-schema//テストを実行するデータベースの名前を指定する--query//指カスタムSQLのスクリプト--only-print//テストスクリプトを実行せずに、生成したスクリプトだけを印刷します2、Sysbenchダウンロードアドレス:https://github.com/akopytov/sysbench/archive/0.5.zip インストール:
unzip sysbench-0.5.zip
cd sysbench./autogen.sh./configure--with-mysql-includes=/usr/local/mysql/include/with-mysql-lib=/usr/local/mysql/lib/make&&make install共通パラメータ:--test//実行するテストタイプを指定します.パラメータFileio//ファイルシステムI/O性能テストcpu//cpu性能テストmemory//メモリ性能テストOltp//テスト具体的なluaスクリプトLuaスクリプトをsysbench-0.5/sysbench/tests/db--mysql-db//基準テストを実行するデータベース名を指定する--mysql-table-engine//使用するストレージエンジンを指定する--oltp-tables-count//テストを実行するデータベース名を指定する表の数--oltp-table-size//各表のデータの行数を指定する--num-threads//テストの同時スレッド数を指定する--max-time//最大のテスト時間を指定する--report-interval//統計を出力する間隔を指定する--mysql-user//テストを実行するmysqlユーザーを指定する--mysql-password//テストを実行するmysqlユーザーパスワードを指定するprepare//テストデータrun//実際のテストcleanup//テストデータのクリーンアップの準備