mysqladmin を使用して MySQL インスタンスの現在の TPS と QPS を取得する方法

mysqladmin を使用して MySQL インスタンスの現在の TPS と QPS を取得する方法

mysqladmin は管理と操作を行う公式の mysql クライアント プログラムです。MySQL データベース サービスの操作に使用できます。MySQL 5.5 以前のバージョンでは、mysql インスタンスをシャットダウンするために使用するのが最も一般的な方法です。

mysqladmin -uxxx -pxxx -Pxxx -hxxx shutdown

MySQL バージョンのアップグレードにより、MySQL5.7 ではシャットダウン コマンドを使用して MySQL サービスを直接シャットダウンできるようになりました。 MySQL 8.0 では、restart コマンドを使用して MySQL サービスを再起動できます。mysqladmin ツールは、日常的な運用およびメンテナンスのシナリオではますます使用されなくなっています。

今日は、mysqladmin ツールを使用して MySQL インスタンスの現在の TPS と QPS を取得する方法を見てみましょう。この問題を解決するには、まず TPS と QPS の基準指標を知る必要があります。 MySQL では、次のように show global status コマンドを使用して、MySQL の現在のインジケーターを表示できます。

[email protected]:(なし) 13:37:50>>グローバルステータスを表示;
+------------------------------------------+----------------+
| 変数名 | 値 |
+------------------------------------------+----------------+
| 中止されたクライアント | 85032 |
| 中止された接続 | 176 |
| Binlog_cache_disk_use | 3293 |
| Binlog_cache_use | 14631673326 |
| Binlog_stmt_cache_disk_use | 13 |
| Binlog_stmt_cache_use | 9948429 |
| 受信バイト数 | 19921975442457 |
| 送信バイト数 | 13553543054684 |
| Com_admin_commands | 913630 |
| キーキャッシュへの割り当て | 0 |
| Com_alter_db | 0 |
| Com_alter_db_upgrade | 0 |

重要な指標がいくつかあります。

1. 質問:

MySQL サーバーによって実行されたステートメントの数。これにはクライアントからサーバーに送信されたステートメントのみが含まれ、ストアド プロシージャで実行されたステートメントは含まれません。このパラメータには、Com_ping、Com_statistics、Com_stmt_prepare、Com_stmt_close、および Com_stat_reset コマンドはカウントされませんが、show コマンドと dml コマンドは含まれます。マスタースレーブレプリケーションのステートメントは含まれていません。

2. クエリ:

サーバーによって実行されたステートメントの数。Questions パラメータとは異なり、ストアド プロシージャで実行されたステートメントと組み込みのマスター/スレーブ レプリケーション ステートメントが含まれます。Com_ping コマンドと Com_statistics コマンドはカウントされません。

3. Com_xxx:

xxx ステートメントが実行された回数を表します。各タイプにはステータス変数があり、例としては、Com_select、Com_insert、Com_delete、Com_update、Com_commit、Com_rollback などがあります。

一般的に、TPS と QPS を計算する方法はいくつかあります。

解決策 1: MySQL サーバー上で実行されるすべての SQL ステートメントを考慮すると、QPS はクエリに基づいて計算され、TPS は Com_commit と Com_rollback の代数和に基づいて計算されます。

解決策 2: コマンドラインを通じてビジネス側で実行されるすべての SQL ステートメントのみを考慮すると、Question に基づいて QPS を計算でき、Com_commit と Com_rollback の代数和に基づいて TPS を計算できます。

解決策3: Com_xxxステータスに基づいてQPSとTPSを計算する

以下は、mysqladmin を使用して TPS と QPS を表示するコマンドです。

[root ~]#./mysqladmin -r -i 2 -uroot -pxxxxxx -P4306 --socket=/data/mysql_4306/tmp/mysql.sock ext| awk '/Queries/{printf("QPS:%d\n",$4)}'
mysqladmin: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
質問番号:55668415
質問数:1
質問数:34
質問数:32
質問数:108
質問数:6
質問数:7

[root ~]# ./mysqladmin -r -i 2 -uroot -pxxxxxx -P4306 --socket=/data/mysql_4306/tmp/mysql.sock ext| awk '/Com_commit/{printf("TPS:%d\n",$4)}'
mysqladmin: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
27449691 再生回数:
TP:56
TP:1
TP:2 秒
TP:28 秒

ここでは、パラメータ -r と -i について説明します。これらの 2 つのパラメータをフィルタリングするには、mysqladmin --help コマンドを使用します。

  • -r, --相対

-i と一緒に使用すると、現在の値と以前の値の差を表示します。現在は、拡張ステータスでのみ機能します。

言い換えると、現在の値と以前の値の差です。-i と一緒に使用する必要があります。-i パラメータを見てみましょう。

  • -i, --sleep=# スリープを挟んでコマンドを繰り返し実行します。

つまり、時間間隔

さらに、その後ろには ext オプションがあります。このオプションの説明を参照してください。

拡張ステータス:

サーバーからの拡張ステータスメッセージを表示します #翻訳: MySQLサーバーの詳細なステータス情報を表示します

これにより、上記のコマンドは説明を要さずに実行できるようになります。 -r パラメータを使用して、さまざまなステータス変数の差を計算し、-i パラメータで時間の長さを制御します。これを 1 に設定すると、1 秒あたりの差を意味し、ext はより多くの MySQL ステータス情報を出力することを意味します。 TPSとQPSは簡単に計算できます。計算方法はそれぞれ若干異なります。さまざまなシナリオに応じて、より正確なTPSとQPS値を計算できます。

TPS と QPS を計算する際には、必要に応じて置き換えることができる基準がいくつかあります。

1. com_commit は暗黙的にコミットされたトランザクションを記録しないため、暗黙的なコミットが有効になっていると、com_commit を使用した tps 計算は不正確になります。

2. データベースに MyISAM テーブルが多数ある場合は、計算に質問を使用する方が適切です。

3. データベース内に InnoDB テーブルが多数ある場合は、計算に com_* データ ソースを使用する方が適切です。

4. Questions は、mysqld の起動以降のすべての select クエリと dml クエリを記録します (show コマンド クエリの数を含む)。これは多少不正確です。たとえば、多くのデータベースでは監視システムが稼働しており、データベースの現在のステータスを取得するために 5 秒ごとにデータベースに対して show クエリを実行します。これらのクエリは QPS および TPS 統計に記録され、ある程度の「データ汚染」を引き起こします。

5. 暗黙的なコミットが有効になっている場合は、Com_insert + Com_update + Com_delete を使用して TPS を表示できます。

最後に、mysql が稼働しているかどうかを確認する方法は次のとおりです。

[root ~]# ./mysqladmin -r -i 2 -uroot -pdba@JJMatch -P4306 --socket=/data/mysql_4306/tmp/mysql.sock ping
mysqladmin: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
mysqldは生きている
mysqldは生きている
mysqldは生きている

mysqladmin ping コマンドを使用して、mysql の生存ステータスを確認します。

MySQL のアップグレードに伴い、mysqladmin ツールの使用頻度はますます少なくなり、日常のニーズはほとんどすべて mysql ツールで満たされます。mysql8.0 バージョンの mysqladmin ツールは、mysql5.7 に基づいてわずかに調整されています。ご興味があれば、自分で勉強してみてください。

上記は、mysqladmin を使用して MySQL インスタンスの現在の TPS と QPS を取得する方法の詳細です。mysqladmin の MySQL T/QPS 統計の詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • スループット (TPS)、QPS、同時実行性、応答時間 (RT) の概念を 1 つの記事で理解する
  • Python 同時リクエストにおける QPS (1 秒あたりのクエリ レート) を制限するための実装コード
  • TPS (スループット)、QPS (1 秒あたりのクエリ レート)、同時実行性、RT (応答時間) はどういう意味ですか?
  • MySQLデータベースのQPSとTPSの意味と計算方法
  • インターフェースの「QPS」を正確に計算する方法を教えます

<<:  HBuilderX で Tomcat 外部サーバーを設定して、JSP インターフェイスを表示および編集する方法の詳細な説明

>>:  JavaScript メッセージ ボックスの例

推薦する

Docker を使用した ElasticSearch:7.8.0 クラスターのインストールに関する詳細なチュートリアル

ElasticSearch クラスターは、クラスターを構築するための動態請求的方式と靜態配置文件をサ...

ウェブページ HTML 順序付きリスト ol と順序なしリスト ul

データを整理するためのリストWeb ページの表示を制御する多数の HTML タグを学習した後、読者は...

Navicat を使用して csv ファイルを MySQL にインポートする

この記事では、参考までに、Navicatを使用してCSVファイルをMySQLにインポートするための具...

MySQL 30軍事ルールの詳細な説明

1. 基本仕様(1)InnoDBストレージエンジンを使用する必要があります。解釈:トランザクション、...

CSSのtranslate(-50%,-50%)は水平および垂直の中央揃え効果を実現します。

translate(-50%,-50%) 属性:中央に配置するには、長さと幅の 50% だけ上と左...

MySQLクエリ最適化プロセスを理解する

目次パーサーとプリプロセッサクエリオプティマイザーMySQL クエリの最適化には、解析、前処理、最適...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

Presto をインストールし、Docker で Hive を接続する詳細なプロセス

1. はじめにPresto は、ギガバイトからペタバイトに及ぶデータ ソースに対してインタラクティブ...

CentOS のクローン作成、Linux 仮想マシンの共有の完全な手順

序文Linux が完全にセットアップされると、クローン機能を使用して短時間で複数の Linux を作...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

WeChatアプレットのスクロールビューが左右にスライドできない問題を解決する方法

私は現在、自分自身の小さなプログラム プロジェクトに取り組んでいます。プロフェッショナルなフロントエ...

CSS3アニメーションジャミングソリューションについての簡単な説明

なぜ詰まっているのでしょうか?言及しなければならない前提があります。フロントエンド開発者は皆、ブラウ...

ウェブサイトアイコンを追加するにはどうすればいいですか?

最初のステップは、アイコン作成ソフトウェアを準備することです。まず、いわゆるアイコンは拡張子 .ic...

テキストエリアの disabled 属性と readonly 属性の具体的な使用法

障害者の定義と使用法disabled 属性はブール属性です。 disabled 属性は、テキスト領域...

WeChatアプレットにおけるデータ保存実装方法

目次グローバル変数 globalDataページプライベート変数データストレージ非同期ストレージ(デバ...