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ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

推薦する

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

乱数、文字列、日付、検証コード、UUIDを生成するMySQLメソッド

目次乱数を生成する0から1までの乱数を生成する指定された範囲内で乱数を生成します6桁のモバイル認証コ...

nginx リバース プロキシでの proxy_pass の実装

フォーマットはシンプルです: proxy_pass URL; URL には、送信プロトコル (htt...

MySQL と接続関連のタイムアウトの詳細な概要

MySQL と接続関連のタイムアウト序文:今日、同僚から、データ量が多いときに MySQL データベ...

MySQL 8.0.11 MSI バージョンのインストールと構成のグラフィック チュートリアル

この記事では、MySQL 8.0.11 MSIバージョンのインストールと設定のチュートリアルを参考ま...

HTML のテキストエリアの改行問題の概要

最近、Textrea に転送したときに、データが本当に行ごとに保存できるかどうかという問題に遭遇しま...

MySQL Index Pushdown (ICP) とは何かを理解するための記事

目次1. はじめに2. 原則III. 実践3.1 インデックスプッシュダウンを使用しない3.2 イン...

MySQL マスタースレーブ同期における server-id の例の詳細な説明

序文MySQL クラスターを構築する場合、当然のことながら、データの一貫性を確保するために、データベ...

Linux で FastDFS ファイル サーバーを構築するための実装手順

目次1. ソフトウェアパッケージ2. gccをインストールする3. libfastcommonをイン...

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修...

XHTML Web ページ チュートリアル

この記事は主に、初心者に XHTML の基本的な知識と、XHTML と HTML の違いを理解しても...

Linux システムで grub.cfg ファイルの破損を修復する手順

目次1. grub.cfg ファイルの紹介1. grub.cfg ファイルの場所2. grub.cf...

HTMLとXHTML、HTML4とHTML5のタグの違いについて簡単に紹介します。

HTML と XHTML の違い1. XHTML要素は正しくネストされている必要がある2. XHT...

ページ リファクタリング スキル - Javascript、CSS

JS、CSSについてCS: ...上部のスタイルシートCSS式を避ける外部JS、CSSの使用JSと...

Linuxアカウントファイル制御管理の詳細な手順

Linux システムでは、ユーザーが手動で作成したさまざまなアカウントに加えて、システムまたはプログ...