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

推薦する

Mysql 5.7.19 無料インストール版 (64 ビット) の設定方法に関する詳細なチュートリアル

公式サイトから mysql-5.7.19-winx64 をダウンロードします。これはシステムの 64...

CSS3 のカラー値 RGBA とグラデーションカラーの使用方法の紹介

CSS3以前は、グラデーション画像は背景画像としてのみ使用できました。 CSS3 のグラデーション構...

Vue バックグラウンドでステータス ラベルをエレガントに記述する例

目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...

Linux gzipコマンドの使用

1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...

Vueは複数列レイアウトドラッグを実装します

この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...

2つのボールが交差する粘着効果を実現するCSSサンプルコード

これは純粋に CSS のみを使用して作成されたエフェクトです。簡単に言うと、このエフェクトは画像処理...

CSS 画像アニメーション効果のサンプルコード(フォトフレーム)

この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...

SpringBoot のパッケージ化と Docker へのアップロード、およびマルチインスタンス デプロイメントの実装に関する簡単な分析 (IDEA バージョン)

最近友人からDockerを触ったことがあるかと聞かれました。あまり自信がなかったので答えられませんで...

HTML の基本 - ハイパーリンク スタイルを設定する簡単な例

*** ハイパーリンクのスタイル設定の例a:link クリックされる前のハイパーリンクの状態a:vi...

Vueプロジェクトがグラフィック検証コードを実装

この記事の例では、グラフィック検証コードを実装するためのVueプロジェクトの具体的なコードを参考まで...

ハイパーリンクを表示して開く方法

<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...

Ubuntu 14.04 に FTP サーバーをインストールするための実装手順

目次インストールソフトウェア管理匿名アクセスモード設定ファイルを変更するクライアントがサーバーにログ...

MySQL 5.7 に組み込まれているストレス テストの mysqlslap コマンドと構文の詳細な説明

序文mysqlslap は、MySQL サーバーへのクライアント負荷をシミュレートし、各ステージの時...

JS の 3 つの主要な問題、非同期性とシングルスレッドについて簡単に説明します。

目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...

VMware CentOS 仮想マシンのインストールとネットワーク構成のグラフィックチュートリアル

1. CentOSイメージをダウンロードする1.1 ダウンロードウェブサイトhttp://mirro...