MySQLデータベースのQPSとTPSの意味と計算方法

MySQLデータベースのQPSとTPSの意味と計算方法

DB ベンチマーク テストを実行する場合、qps と tps はデータベースのパフォーマンスを測定するための重要な指標です。この記事では、オンラインで利用できる 2 つの計算方法を比較します。まず関連する概念を理解しましょう。

コンセプト紹介:

  • QPS: 1 秒あたりのクエリ数は、サーバーが 1 秒あたりに応答できるクエリの数です。これは、特定のクエリ サーバーが指定された時間内に処理するクエリの量を測定するものです。
  • TPS: Transactions Per Second は、1 秒あたりのトランザクション数であり、単位時間内にデータベース サーバーによって処理されるトランザクションの数です。

QPS と TPS という用語は、データベースのパフォーマンス監視でよく使用されます。以下では、MySQL データベースにおける QPS と TPS の意味と計算方法について簡単に紹介します。

1 QPS: 1 秒あたりのクエリ数。ここで、QPS は MySQL サーバーによって 1 秒あたりに実行されるクエリの総数を指します。計算方法は次のとおりです。

質問 = '質問' のようなグローバル ステータスを表示します。
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
QPS = 質問数/稼働時間

2 TPS: 1 秒あたりのトランザクション数。クライアント アプリケーションが要求する TPS 値は、次のように取得されます。計算方法は次のとおりです。

Com_commit = 'Com_commit' のようにグローバルステータスを表示します。
Com_rollback = 'Com_rollback' のようにグローバル ステータスを表示します。
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
TPS=(Com_commit + Com_rollback)/稼働時間

IOPS: (Input/Output Operations Per Second) は、1 秒あたりの読み取りおよび書き込み (I/O) 操作の数です。主にデータベースなどで、ランダム アクセスのパフォーマンスを測定するために使用されます。

ストレージ側の IOPS パフォーマンスは、ホスト側の IO とは異なります。IOPS は、ストレージが 1 秒間にホストからアクセスを受信できる回数を指します。ホストからの 1 つの IO を完了するには、ストレージへの複数回のアクセスが必要です。たとえば、ホストが最小データ ブロックを書き込む場合、「書き込み要求の送信、データの書き込み、書き込み確認の受信」という 3 つの手順を実行する必要があり、これは 3 回のストレージ エンド アクセスを意味します。

主な IOPS テスト ベンチマーク ツールには、Iometer、IoZone、FIO などがあり、これらを使用してさまざまな状況でのディスクの IOPS を包括的にテストできます。アプリケーション システムの場合、まずデータの負荷特性を決定し、次に測定および比較分析のための適切な IOPS 指標を選択し、それに基づいて適切なストレージ メディアとソフトウェア システムを選択する必要があります。

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

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

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

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • データベースパフォーマンステスト用の sysbench ツールの詳細なインストールと使用方法
  • JAVA 注文インターフェースの最適化により実際の TPS パフォーマンスが 10 倍に向上
  • mysql の sysbench ストレス テストに関する詳細なチュートリアル
  • パフォーマンステスト QPS+TPS+トランザクション基本分析

<<:  1 つの記事で Vue ミドルウェア パイプラインを学ぶ

>>:  Centos7にTenda U12ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

推薦する

Tomcatのクラスロードメカニズムを説明する記事

目次- 序文 - - JVM クラスローダー - 1. JVMクラスローダー2. クラスローダーのソ...

VMware Workstation のダウンロードとインストールの詳細なチュートリアル

仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...

リンク内の href=# はどういう意味ですか?

現在のページへのリンク。 -------------------一般的な使用法は次のとおりです。 &...

React-Native スクリーンショットコンポーネント react-native-view-shot の紹介と使い方のまとめ

目次1. 現象2. 解決策3. 要約: 1. 現象1. 要件: 特定の表示ページをキャプチャしてアル...

JavaScript フロー制御 (分岐)

目次1. プロセス制御2. シーケンシャルプロセス制御3. 分岐フロー制御if文1. 支店構造2. ...

DOCTYPE要素詳細説明完全版

1. 概要この記事では、DOCTYPE要素を体系的に説明します。同時に、多くの情報を調べました。イン...

Linux コマンドを使用してオーディオ形式を変換および結合する方法

FFmpeg flacをインストールする eric@ray:~$ sudo apt install ...

Ubuntu 18.04 で apt-get ソースを変更する方法

apt-get を使用してインストールすると、非常に遅くなります。国内のソースを変更すると、この問題...

MySQLにおける正規表現の一般的な使用法

MySQL における Regexp の一般的な使用法特定の文字列を含むあいまい一致# コンテンツフィ...

Linux コマンド クエリ アプレットでの WePY クラウド開発の実践

みなさんこんにちは。今日は Linux コマンド クエリ アプレットでの WePY クラウド開発の実...

W3C チュートリアル (14): W3C RDF および OWL アクティビティ

RDF と OWL は、2 つの重要なセマンティック ウェブ テクノロジーです。 RDF と OWL...

SQL Server コメントのショートカット キー操作

SQL Server のバッチコメントバッチ注釈Ctrl + (K, C): Ctrlキーを押しなが...

Reactのdiffアルゴリズムの詳細な分析

Reactのdiffアルゴリズムの理解diffアルゴリズムは、 Virtual DOMの変更された部...

実稼働環境でのNginx高可用性ソリューションの実装プロセスの分析

準備: 192.168.16.128 192.168.16.129 2 台の仮想マシン。 Nginx...

JS変数ストレージのディープコピーとシャローコピーの詳しい説明

目次可変タイプとストレージスペーススタックメモリとヒープメモリ基本的なデータ型参照タイプグラフィック...