検索

7.4. データベースレプリケーションのパフォーマンスのテスト

download PDF

クラスターおよび個々のノードがすべて健全で安定している場合、特定のデータベース変数のクエリーを行い、レプリケーションのスループットについてパフォーマンスのベンチマークテストを行うことができます。

これらの変数の 1 つのクエリーを行うたびに、FLUSH STATUS コマンドは変数の値をリセットします。ベンチマークテストを行うには、複数のクエリーを実行し、差異を分析する必要があります。この差異は、Flow Control がクラスターのパフォーマンスにどの程度影響を及ぼしているかを判断するのに役立ちます。

Flow Control は、クラスターがレプリケーションを制御するのに使用するメカニズムです。ローカルの 受信キュー が一定のしきい値を超えると、キューのサイズが減少するまで、Flow Control はレプリケーションを一時停止します。Flow Control の詳細は、Galera Cluster の Web サイトで「Flow Control」を参照してください。

手順

次のコマンドを実行し、VARIABLE を確認する wsrep データベース変数に置き換えます。

$ sudo podman exec galera-bundle-podman-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW STATUS LIKE 'VARIABLE';"

以下の表には、データベースレプリケーションのパフォーマンスをテストするのに使用できるさまざまな wsrep データベース変数をまとめています。

表7.3 データベースレプリケーションのパフォーマンスを確認するためのデータベース変数
変数概要用途

wsrep_local_recv_queue_avg

最後のクエリー後のローカル受信 Write Set キューの平均サイズ

値が 0.0 を超えていれば、ノードが受信速度に対応して Write Set を適用できないことが分かります。この場合、レプリケーションのスロットリングがトリガーされます。このベンチマークの詳しい情報は、wsrep_local_recv_queue_minwsrep_local_recv_queue_max を確認してください。

wsrep_local_send_queue_avg

最後のクエリー後の送信キューの平均長さ

値が 0.0 を超えていれば、レプリケーションのスロットルおよびネットワークスループットの問題の可能性が高いことが分かります。

wsrep_local_recv_queue_min および wsrep_local_recv_queue_max

最後のクエリー後のローカル受信キューの最小/最大サイズ

wsrep_local_recv_queue_avg の値が 0.0 を超える場合、これらの変数を確認してキューサイズの範囲を判断することができます。

wsrep_flow_control_paused

最後のクエリー以降、Flow Control がノードを一時停止した時間の割合

値が 0.0 を超えていれば、Flow Control がノードを一時停止したことが分かります。一時停止の時間を把握するには、wsrep_flow_control_paused の値をクエリー間の秒数で乗算します。可能な限り 0.0 に近い値が最適値です。

以下に例を示します。

  • 最後のクエリーから 1 分後の wsrep_flow_control_paused の値が 0.50 の場合、Flow Control は 30 秒間ノードを一時停止しています。
  • 最後のクエリーから 1 分後に wsrep_flow_control_paused の値が 1.0 の場合、Flow Control はその 1 分間にわたってノードを一時停止します。

wsrep_cert_deps_distance

並行して適用することのできるシーケンス番号 (seqno) の最小値と最大値の差の平均

スロットリングおよび一時停止の場合、この変数は並行して適用することのできる Write Set 数の平均を示します。この値を wsrep_slave_threads 変数と比較して、実際に同時に適用することのできる Write Set の数を確認します。

wsrep_slave_threads

同時に適用することのできるスレッドの数

この変数の値を増やして、より多くのスレッドを同時に適用することができます。これにより、wsrep_cert_deps_distance の値も増加します。wsrep_slave_threads の値は、ノードの CPU コア数よりも大きくすることはできません。

たとえば、wsrep_cert_deps_distance の値が 20 の場合は、wsrep_slave_threads の値を 2 から 4 の値を増やして、ノードを適用することができる write set の量を増やすことができます。

問題のあるノードの wsrep_slave_threads の値が既に最適値である場合、接続性の問題を調査する際に、ノードをクラスターから除外することができます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.