MySQL パフォーマンス ストレス ベンチマーク ツール sysbench の使い方の紹介

MySQL パフォーマンス ストレス ベンチマーク ツール sysbench の使い方の紹介

1. sysbenchの紹介

ここでは、ベンチマークテストに使用される MySQL データベース ストレス テスト ソフトウェア sysbench を紹介します。

Sysbench は、オープン ソース、モジュール式、クロスプラットフォームのマルチスレッド パフォーマンス テスト ツールです。

CPU、メモリ、ディスク I/O、スレッド、データベースのパフォーマンス テストを実行するために使用できます。

現在サポートされているデータベースは、MySQL、Oracle、PostgreSQL です。

#プロジェクトダウンロードアドレス:

https://launchpad.net/sysbench
http://github.com/akopytov/sysbench

このベンチマーク スイートの目的は、複雑なデータベース ベンチマークを設定したり、データベースをインストールしたりすることなく、システム パフォーマンスの印象をすばやく得ることです。
現在の機能では、次のシステム パラメータのテストが可能です。

  • #CPU パフォーマンス
  • ファイル I/O パフォーマンス #ファイル IO パフォーマンス、ディスク IO パフォーマンス
  • スケジューラのパフォーマンス
  • メモリ割り当てと転送速度
  • POSIXスレッド実装パフォーマンス
  • データベース サーバーのパフォーマンス (OLTP ベンチマーク)

Sysbench の oltp は主に、さまざまなシステム パラメータの下でデータベースの負荷を評価およびテストするために使用されます。
バージョン 0.4 と比較すると、OLTP テストの以降のバージョンでは、主に lua スクリプトを組み合わせています。ソース コードを変更する必要はありません。カスタム lua スクリプトを通じて、さまざまなビジネス タイプのテストを実現できます。

SysBench の欠点:
シミュレートされたテーブル構造は単純すぎるため、tpcc-mysql ほど完全なトランザクション システムではありませんが、MySQL パフォーマンス ストレス テストの比較には非常に役立ちます。

2. Sysbenchのインストールプロセス

#関連する依存関係をインストールする

/dev/cdrom /mnt をマウントします
yum -y インストール make automake libtool pkgconfig libaio-devel libtool

# インストールプロセスが開始されます

#クライアントライブラリパッケージへのリンクを作成します ln -sf /mysql/app/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
#解凍してインストール cd /softtar zxvf sysbench-1.0.15.tar.gz cd sysbench-1.0.15./autogen.sh
./configure --prefix=/mysql/app/sysbench --with-mysql=/mysql/app/mysql --with-mysql-includes=/mysql/app/mysql/include/
# --with-mysql-libs=/usr/lib/ です
作成 && インストール
#環境変数を設定する vi ~/.bash_profile
PATH=$PATH:/mysql/app/sysbench/bin:$HOME/bin
ソース ~/.bash_profile
sysbench --バージョン
#エラーメッセージが報告された場合、sysbench: 共有ライブラリのロード中にエラーが発生しました: libmysqlclient.so.20: 共有オブジェクトファイルを開けません: そのようなファイルまたはディレクトリはありません

#次に、/usr/lib の行を /etc/ld.so.cnf [root@tse01 local] に追加します。# cat /etc/ld.so.conf
ld.so.conf.d/*.conf をインクルードする
/usr/lib/
# ldconfig -v を実行して設定を更新します [root@tse01 local]# /sbin/ldconfig -v

# ヒント:

MySQLのヘッダーファイルとライブラリを非標準の場所にインストールした場合(PATHにmysql_configが見つからない場合)、

上記のように、--with-mysql-includes および --with-mysql-libs オプション引数を明示的に指定できます。

MySQL サポートなしで sysbench をコンパイルするには、--without-mysql を使用します。
データベース ドライバーが利用できない場合は、データベース関連のスクリプトは機能しませんが、他のベンチマークは機能します。

#一般的なコマンドラインオプション

次の表に、サポートされている共通オプション、その説明、およびデフォルト値を示します。

オプション
説明する
デフォルト値
--スレッド
作成するワーカースレッドの合計数
1
--イベント
リクエストの総数には制限があります。 0(デフォルト)は制限なしを意味します
0
- 時間
合計実行時間制限(秒単位)。 0は制限なしを意味します
10
--ウォームアップ時間
統計を有効にして実際のベンチマークを実行する前に、統計を無効にしてイベントを数秒間実行します。この機能は、ベンチマーク実行の初期期間を統計から除外する場合に便利です。多くのベンチマークでは、CPU/データベース/ページやその他のキャッシュがウォームアップするのに時間がかかるため、初期段階は代表的ではありません。
0
- レート
平均取引レート。この数値は、すべてのスレッド全体で平均して 1 秒あたりに実行されるイベント (トランザクション) の数を指定します。 0(デフォルト)は無制限のレートを意味し、イベントは可能な限り高速に実行されます。
0
--スレッド初期化タイムアウト
ワーカースレッドが初期化されるまでの待機時間(秒)
30
--スレッドスタックサイズ
各スレッドのスタックサイズ
32K
--レポート間隔
指定された間隔 (秒単位) で定期的に中間統計を報告します。このオプションでは、累積的ではなく時間間隔に基づいて統計が生成されることに注意してください。 0は中間レポートを無効にする
0
- デバッグ
デバッグ情報をさらに印刷する
離れる
--検証
可能な限りテスト結果を検証する
離れる
- ヘルプ
一般的な構文または指定されたテストに基づいてヘルプを印刷し、終了します。
離れる
--詳細度
詳細レベル (0 - 重要なメッセージのみ、5 - デバッグ)
4
--パーセンタイル
sysbench は、処理されたすべてのリクエストの実行時間を測定し、最小、平均、最大実行時間などの統計情報を表示します。ほとんどのベンチマークでは、特定のパーセンタイルに一致するリクエスト実行時間の値を知ることも役立ちます (たとえば、95% パーセンタイルは、最も長いリクエストの 5% を破棄し、残りから最大値を選択する必要があることを意味します)。このオプションを使用すると、計算するクエリ実行時間のパーセンタイルランクを指定できます。
95
--luajit-cmd
LuaJIT 制御コマンドを実行します。このオプションは luajit -j と同等です。詳細については、LuaJIT のドキュメントを参照してください。

対応する乗算サフィックス (キロバイトの場合は K、メガバイトの場合は M、ギガバイトの場合は G、テラバイトの場合は T) を追加することでバイトを指定できることに注意してください。
すべてのサイズ オプションの値を指定します (この表に示すように --thread-stack-size)。

#sysbench は [コマンド] を使用します。一般的に使用されるのは次のとおりです。

1) テストの準備とデータの生成
2) テストを実行する
3) クリーンアップはデータをクリーンアップします
4) 助ける
5) バージョン

以上がMySQLパフォーマンスストレスベンチマークテストツールsysbenchの使い方の詳細な紹介です。MySQL sysbenchの使い方の詳細については、123WORDPRESS.COMの他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • MySQL 5.7.20 共通ダウンロード、インストール、設定方法と簡単な操作スキル(解凍版無料インストール)
  • MySQL 8.0.23 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)
  • mysql の sysbench ストレス テストに関する詳細なチュートリアル
  • MySQL ストレス テスト方法 mysqlslap を使用して MySQL ストレスをテストする方法は?
  • MySQL ストレス テスト スクリプトの例
  • Mysqlslap MySQL ストレステストツールの簡単なチュートリアル
  • MySQLシリーズ15 MySQL共通設定とパフォーマンスストレステスト

<<:  DOCTYPE HTMLを使用する理由

>>:  フロア効果を実現するためのJavaScript

推薦する

Javascriptのtry catchの2つの機能についてお話しましょう

プログラムは上から下へ順番に実行され、いくつかの制御文によって実行経路を変更することができます。制御...

Navicat For MySQL の使い方に関する簡単なチュートリアル

推薦する: Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル...

MySQL データベースの詳細な説明 - 複数テーブル クエリ - 内部結合、外部結合、サブクエリ、相関サブクエリ

複数テーブルクエリ複数のテーブルから関連するクエリ結果を取得するには、単一の SELECT ステート...

html-webpack-plugin' を使用してメモリ内に HTML ページ プラグインを生成します。

webpackjs ファイルをパッケージ化するときに、次に示すように、index.html インタ...

メニューノードのすべての子ノードを再帰的に検索する MySQL メソッド

背景プロジェクトにはメニューノードのすべてのノードをチェックする要件があります。オンラインでチェック...

Docker の MySQL コンテナのタイムゾーン問題の修正

序文Ahhang が Springboot プロジェクトを開発していたとき、フロントエンドから検証コ...

process.env.NODE_ENV 本番環境モードを設定する方法

始める前に、process.env.NODE_ENV にはデフォルトで開発と本番の 2 つの状態しか...

MySQLインデックスが失敗するいくつかの状況の分析

1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...

回転するフリップカードアニメーションの効果を実現するCSS

回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...

nginx ロケーション優先度の詳細な説明

場所表現タイプ~ は大文字と小文字を区別して通常の一致を実行することを示します~*は大文字と小文字を...

Linux のリンク解除機能とファイルの削除方法

1. リンク解除機能ハード リンクの場合、unlink はディレクトリ エントリを削除し、inode...

Apple M1チップにnginxをインストールし、vueプロジェクトをデプロイする詳細な手順

nginx をインストールApple Mac ではインストールに brew を使用します。brew ...

Docker は Python Flask+ nginx+uwsgi コンテナを構築します

Nginxをインストールするまずcentosイメージをプルしますdocker pull centos...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...

Vue はカードフリップカルーセル表示を実装します

Vueカードのフリップカルーセル表示、フリップ時にデータを切り替えながら、参考までに、具体的な内容は...