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

推薦する

組み込み Linux 開発環境で ping と nfs を構築するためのソリューション

1. 組み込みソフトウェアレベル 1) ブートローダ -> ブートローダ組み込みシステム全体の...

CSS ハート型読み込みアニメーションのソースコードの実装

さっそく、コードをお見せしましょう。コードは非常にシンプルなので、勉強すれば理解できるようになります...

リモートDockerを使用した統合テスト環境の構築手順

需要背景チームには統合テストが必要であり、そのためには、mysql や rabbitmq などのミド...

mysql 簡単な操作例を表示

この記事では、例を挙げて mysql show 操作について説明します。ご参考までに、詳細は以下の通...

CSSのline-heightとheightの詳細な説明

最近、CSS インターフェースに取り組んでいるときに、line-height と height とい...

Docker のポート解放失敗の解決策

今日、非常に奇妙な状況に遭遇しました。docker イメージを更新した後、docker-compos...

Vue での weixin-js-sdk の一般的な使用方法の詳細な説明

リンク: https://qydev.weixin.qq.com/wiki/index.php?ti...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

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

1. Navicat for MySQL 15をダウンロードするhttps://www.navica...

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

仕事を探しています!!!事前準備:まず、このアニメーションは、以前のローディングアニメーションとクー...

2つのLinuxサーバー間でファイルとフォルダを転送する手順

今日、私はプロジェクトの移行の問題に取り組んでいましたが、突然、大量の写真をどうやって移動したらよい...

フィールドを結合するSQL関数

最近、関連テーブル内のすべてのフィールドをクエリし、それらを 1 つのフィールドに再グループ化する必...

Vue プロジェクトで mock.js を使用するための完全な手順

Vue プロジェクトで mock.js を使用する開発ツールの選択: Vscode 1. コマンドラ...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

レスポンシブレイアウトについて知っておくべきこと

1. はじめにレスポンシブ Web デザインにより、Web サイトは複数のデバイスと複数の画面に同時...