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

推薦する

JavaScript イベント委任の原則

目次1. イベント委任とは何ですか? 2. イベント委任の原則3. イベント委託の役割1. イベント...

JavaScript データ型変換の例 (他の型を文字列、数値型、ブール型に変換する)

序文データ型変換とは何ですか?フォームまたはプロンプトを使用して取得されるデフォルトのデータ型は文字...

MySQL トランザクションの詳細

目次導入取引の4つの特徴トランザクション分離レベル確認するMVCC現在の読書スナップショット読み取り...

初心者向け入門チュートリアル⑨:ポータルサイトの構築方法

さらに、ブログ プログラムで構築された記事 Web サイトは常にブログのように見え、カスタマイズでき...

キャンバスはスクラッチカード効果を描画します

この記事では、キャンバスでスクラッチカード効果を描画するための具体的なコードを参考までに共有します。...

JavaScript を使用してカルーセル効果を実装する

この記事では、カルーセルマップの特殊効果を実現するためのJavaScriptの具体的なコードを参考ま...

CSS の :focus-within の楽しさについて簡単に説明します

Bステーションでパスワードを入力するときに目を覆っているこの画像を見たことがある人もいると思いますこ...

Videojs+swiper が Taobao の商品詳細カルーセルを実現

この記事では、Taobao商品詳細のカルーセルを実現するためのvideojs+swiperの具体的な...

nginx を使用して特定のインターフェース (URL) をブロックする方法

1. はじめに場合によっては、Web プラットフォームがオンラインになった後、サービス インターフェ...

Web デザイン ヘルプ: Web フォント サイズ データ リファレンス

<br />内容はインターネットから転載したものです。どこから見つけたのか忘れてしまいま...

クラウド決済を実装するWeChatミニプログラムについて

目次1. はじめに2. 思考分析3. クラウド決済のケーススタディ1. クラウド機能1-1. 認証不...

JavaScriptの強力な演算子をいくつか見てみましょう

目次序文1. ヌル合体演算子2. ??= 空代入演算子3. ?. オプション連鎖演算子4. ?: 三...

srcまたはcss背景画像のurl値はbase64でエンコードされたコードです

ウェブ上の一部の画像の src または CSS 背景画像 URL の後に、data:image/pn...

UCenter ホームサイトに統計コードを追加

UCenter Homeは、ComsenzがリリースしたSNSサイト構築システムです。最新バージョン...

ウェブページで任意のフォントを使用する実践的な操作とデモ

以前、「Web ページにシステムに組み込まれていないフォントを埋め込む」という研究をしたことがありま...