1. 背景 Sysbench は、システムのハードウェア パフォーマンスをテストできるストレス テスト ツールであり、データベースのベンチマークにも使用できます。 sysbench でサポートされているテストには、CPU コンピューティング パフォーマンス テスト、メモリ割り当ておよび転送速度テスト、ディスク IO パフォーマンス テスト、POSIX スレッド パフォーマンス テスト、相互排他テスト、データベース パフォーマンス テスト (OLTP ベンチマーク テスト) などがあります。現在サポートされているデータベースは、主に MySQL データベースと PG データベースです。 新しいサーバーがオンラインになったときは、サーバーのパフォーマンスをテストすることをお勧めします。潜在的な問題を特定するには、同じタイプの以前のサーバーのパフォーマンス テスト レポートと横に比較するのが最適です。新しいマシンがオンラインになる前に、サーバーの物理的なチェックを行ってください。 データベースの場合、sysbench ツールを使用してデータベース ベンチマークを実装できます。現在のシステムアーキテクチャでは、フロントエンドは水平拡張が比較的容易ですが、データベースは比較的困難であるため、ベンチマークテストはデータベースにとって非常に重要な役割を果たします。データベース ベンチマークの目的は、現在の構成 (ハードウェア構成、OS、データベース設定などを含む) でのデータベースのパフォーマンスを分析し、MySQL のパフォーマンスしきい値を見つけて、実際のシステム要件に応じて構成を調整することです。 2. sysbenchのインストール 1) インストールコマンド
2) インストールされているバージョンを確認する
3) インストールされているソフトウェアの情報を表示します(主に rpm コマンドを使用)。 sysbench のインストール情報を照会します。mysql をテストする場合は、テスト用に sysbench に付属する lua スクリプトを使用する必要があります。クイック インストール方法を使用する場合、デフォルトのスクリプト パスは このコマンドにない場合は、次のコマンドを実行して、ローカル Linux システムにインストールされているすべての sysbench ソフトウェア プログラムを確認して見つけます。 ソフトウェアのすべてのファイルとディレクトリの完全なファイル名を一覧表示します (リスト): 3.sysbench構文 sysbench --ヘルプ 使用法: sysbench [オプション]... [テスト名] [コマンド] ほとんどのテストで実装されているコマンド: 準備、実行、クリーンアップ、ヘルプ 一般オプション: --threads=N 使用するスレッド数 [1] --events=N イベントの総数の制限 [0] --time=N 総実行時間の制限(秒単位)[10] --forced-shutdown=STRING 強制シャットダウンまでの --time 制限後の待機秒数、または無効にする場合は 'off' [off] --thread-stack-size=SIZE スレッドあたりのスタックサイズ [64K] --rate=N 平均トランザクションレート。無制限レートの場合は 0 [0] --report-interval=N は、指定された間隔(秒)で定期的に中間統計をレポートします。0 は中間レポートを無効にします [0] --report-checkpoints=[LIST,...] 完全な統計情報をダンプし、指定された時点ですべてのカウンターをリセットします。引数は、レポート チェックポイントを実行する必要があるテストの開始から経過した時間を秒単位で表す、コンマ区切りの値のリストです。レポート チェックポイントは、デフォルトではオフになっています。[] --debug[=on|off] デバッグ情報をさらに出力します [off] --validate[=on|off] 可能な場合は検証チェックを実行します [off] --help[=on|off] ヘルプを印刷して終了する [off] --version[=on|off] バージョンを印刷して終了する [off] --config-file=FILENAME コマンドラインオプションを含むファイル --tx-rate=N --rate の非推奨のエイリアス [0] --max-requests=N は --events の非推奨のエイリアスです [0] --max-time=N は --time の非推奨のエイリアスです [0] --num-threads=N --threadsの非推奨のエイリアス [1] 疑似乱数ジェネレータのオプション: --rand-type=STRING 乱数分布 {uniform,gaussian,special,pareto} [special] --rand-spec-iter=N 数値生成に使用する反復回数 [12] --rand-spec-pct=N '特別' として扱われる値のパーセンテージ(特別分布用)[1] --rand-spec-res=N 使用する「特別な」値のパーセンテージ(特別な分布用)[75] --rand-seed=N 乱数ジェネレータのシード。0 の場合、現在の時刻が RNG シードとして使用されます。[0] --rand-pareto-h=N パレート分布のパラメータh [0.2] ログオプション: --verbosity=N 詳細レベル {5 - デバッグ、0 - 重要なメッセージのみ} [3] --percentile=N レイテンシ統計を計算するパーセンタイル(1-100)。パーセンタイル計算を無効にするには、特別な値0を使用します [95] --histogram[=on|off] レポートにレイテンシヒストグラムを出力する [off] 一般的なデータベース オプション: --db-driver=STRING は使用するデータベース ドライバーを指定します (使用可能なドライバーの一覧を取得するには 'help' を使用します) [mysql] --db-ps-mode=STRING 準備されたステートメントの使用モード {auto, disabled} [auto] --db-debug[=on|off] データベース固有のデバッグ情報を出力します [off] コンパイルされたデータベース ドライバー: MySQL ドライバー pgsql - PostgreSQL ドライバ mysql オプション: --mysql-host=[LIST,...] MySQLサーバホスト[localhost] --mysql-port=[LIST,...] MySQLサーバポート[3306] --mysql-socket=[LIST,...] MySQLソケット --mysql-user=STRING MySQLユーザー [sbtest] --mysql-password=STRING MySQLパスワード [] --mysql-db=STRING MySQLデータベース名 [sbtest] --mysql-ssl[=on|off] クライアントライブラリで利用可能な場合はSSL接続を使用する [off] --mysql-ssl-cipher=STRING SSL接続に特定の暗号を使用する [] --mysql-compression[=on|off] クライアントライブラリで利用可能な場合は圧縮を使用する [off] --mysql-debug[=on|off] すべてのクライアントライブラリ呼び出しをトレースします [off] --mysql-ignore-errors=[LIST,...] 無視するエラーのリスト、または「すべて」 [1213,1020,1205] --mysql-dry-run[=on|off] ドライラン。すべてのMySQLクライアントAPI呼び出しを実行せずに成功したと仮定します[オフ] pgsql オプション: --pgsql-host=STRING PostgreSQLサーバホスト [localhost] --pgsql-port=N PostgreSQLサーバポート [5432] --pgsql-user=STRING PostgreSQLユーザー [sbtest] --pgsql-password=STRING PostgreSQLパスワード [] --pgsql-db=STRING PostgreSQLデータベース名 [sbtest] コンパイルされたテスト: fileio - ファイルI/Oテスト cpu - CPU パフォーマンス テスト メモリ - メモリ機能の速度テスト スレッド - スレッドサブシステムのパフォーマンステスト mutex - ミューテックスパフォーマンステスト 基本的な構文は次のとおりです。
command は、準備、実行、クリーンアップなど、sysbench によって実行されるコマンドです。 prepare はテスト用のデータを事前に準備すること、run は正式なテストを実行すること、cleanup はテストが完了した後にデータベースをクリーンアップすることです。 testname は実行するテストを指定します。sysbench の古いバージョンでは、--test パラメータを使用してテスト スクリプトを指定できます。新しいバージョンでは、--test パラメータは廃止されました。--test を使用する代わりに、スクリプトを直接指定できます。テストで使用するスクリプトは Lua スクリプトです。sysbench に付属のスクリプトを使用することも、独自のスクリプトを開発することもできます。 MySQL に関するオプションには、主に MySQL 接続情報パラメータと MySQL 実行関連パラメータが含まれます。 4 テスト ステップ1: ストレステストデータを準備する sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='textpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 準備 ステップ2: ストレステスト sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='textpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 実行 テスト結果は、後で分析するためにファイルにエクスポートすることもできます。 sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='testpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 実行 >> ./mysysbench.log ステップ3: ストレステストデータをクリーンアップする sysbench /usr/share/sysbench/oltp_insert.lua --mysql-host=XXX.XXX.XXX.XXX --mysql-port=3306 --mysql-user=testsbuser --mysql-password='testpwd' --mysql-db=tssysbench --db-driver=mysql --tables=15 --table-size=500000 --report-interval=10 --threads=128 --time=120 クリーンアップ 5. 注意事項 (1)事前にテストデータベースを作成し、テストアカウントにデータベースを作成する権限を与える必要があります。 --mysql-db パラメータはテスト データを指定します。デフォルトは sbtest です。 事前に作成されていない場合は、次のエラーメッセージが表示されます。
または(データベースを指定せずに)
(2) MySQLサーバが動作しているマシンでテストしないでください。一方で、ネットワーク(LANであっても)の影響が反映されない可能性があります。他方、sysbenchの動作(特に同時実行性が高い値に設定されている場合)は、MySQLサーバのパフォーマンスに影響を与えます。 (3)同時クライアント接続数(--threadパラメータ)を徐々に増やし、異なる接続数でのMySQLサーバーのパフォーマンスを観察します。 (4)複数のテストを連続して実行する場合は、前のテストのデータがクリーンアップされていることを確認してください。 (5)生成されたレポートがグラフィカルな分析である場合、gnuplotツールを使用して分析することができます。 要約する 上記は、sysbench ツールを使用して MySQL データベースのパフォーマンス テストを実装するために紹介した方法です。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: WeChatミニプログラムページで値を返す4つの解決策のまとめ
>>: Linuxでのcrontabの使い方と注意点の詳しい説明
最近、ポーターを学んでいます。こんなに強力なものがあったなんて、今まで知らなかった気がします。クラス...
この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...
1. 時間差関数(TIMESTAMPDIFF、DATEDIFF) MySQLを使用して時間差を計算...
Docker で Zookeeper を素早くインストール会社を変わってから長らくZookeeper...
この記事では、参考までにMySQL 8.0.17のインストールグラフィックチュートリアルを紹介します...
操作効果: html <div class="三目並べ"> <...
ページで CSS を使用する主な方法は、スタイル属性値をインラインで追加する方法、ページ ヘッダーで...
目次1. ホームページ制作1. ダウンロードアプリの制作2. ナビゲーションバーの制作3. カルーセ...
目次導入従来のトランジションアニメーションCSS トランジションアニメーションjsアニメーション従来...
注意:この記事は現在取り組んでいる nestjs+graphql+serverless 合宿における...
<!DOCTYPE html> <html lang="ja"...
MySQL バージョン 5.5 および 5.6 を標的とする Riddle 脆弱性により、中間者攻撃...
前回の記事「MySQL テーブル構造の変更、メタデータ ロックを知っておく必要があります」では、MD...
それは何ですか? Spring Boot は、Spring オープンソース組織のサブプロジェクトであ...
目次1. スタイル属性をバインドして変更するhtml:対応するjs:達成された効果:次に、refを使...