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

推薦する

ウェブサイトのユーザビリティを向上させる10のヒント

企業の Web サイト、個人のブログ、ショッピング Web サイト、ゲーム Web サイトなど、どの...

MySQLデータベース移行におけるデータ文字化けの問題を解決する

リーダーの指示のもと、Java プロジェクトを引き継ぎ、リファクタリングを行う必要がありました。同時...

Linux 上のカラフルな猫

Linux システムを使用したことがある友人なら、 catコマンドを使用したことがあるはずです。もち...

MySQLのパラメータについてお話しましょう

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...

Windowsタイムサーバーの設定方法の詳しい説明

最近、会社のサーバーの時間が不正確で、外部の時間ソースと同期できないことがわかりました。会社はドメイ...

ビジュアルデザイナーの成長の3つの段階のまとめ

この本「グラフィックデザイナーとして成長する」は多くの人が読んでおり、私もオリジナルの PDF 版を...

シェルスクリプトによるDockerコンテナの起動順序の制御の詳細な説明

1. 遭遇した問題分散プロジェクトの展開プロセスでは、サーバーの再起動後にアプリケーション(データベ...

Dockerを使用してphabricatorをインストールする方法

ここでは Ubuntu 16.04 システムを使用しています。 dockerを使用したインストールh...

MySQL の簡単な分析 - MVCC

バージョンチェーンInnoDB エンジン テーブルでは、クラスター化インデックス レコードに 2 つ...

JS はデータ URL をどのように理解するのでしょうか?

目次概要データ URL の使用を開始するデータURL構文複数言語の文字列のBase64エンコードとデ...

Eclipseを使用してMySQLデータベースに接続する方法を説明します

序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...

MYSQL メタデータ ロック (MDL ロック) の理論とロック タイプ テスト

目次MYSQL メタデータ ロック (MDL ロック) 学習理論とロック タイプ テスト1. 予備的...

Linux ユーザー状態とカーネル状態間の通信方法の詳細な説明

CPU 権限の制限により、Linux ユーザー状態とカーネル状態間の通信は、プロセス間通信を使用した...

MySQL 文字列分割の例 (区切り文字なしの文字列抽出)

区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...

HTMLタグのtarget属性の使用法

1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...