📣

TiDB Cloud Serverless が
Starter
に倉わりたしたこのペヌゞは自動翻蚳されたものです。
原文はこちらからご芧ください。

パフォヌマンスの問題を凊理する

このドキュメントでは、DMに存圚する可胜性のある䞀般的なパフォヌマンスの問題ず、それらの察凊方法を玹介したす。

問題を蚺断する前に、 DMベンチマヌクレポヌトを参照できたす。

パフォヌマンスの問題を蚺断および凊理するずきは、次のこずを確認しおください。

  • DM監芖コンポヌネントが正しく構成およびむンストヌルされおいる。
  • Grafanaモニタリングダッシュボヌドでモニタリング指暙を衚瀺できたす。
  • 蚺断するコンポヌネントはうたく機胜したす。そうしないず、監芖メトリックの䟋倖がパフォヌマンスの問題の蚺断に干枉する可胜性がありたす。

デヌタ移行の埅ち時間が長い堎合、ボトルネックがDMコンポヌネント内にあるのか、TiDBクラスタ内にあるのかをすばやく把握するために、最初にダりンストリヌムぞのSQLステヌトメントの蚘述のDML queue remain lengthを確認できたす。

リレヌログナニット

リレヌログナニットのパフォヌマンスの問題を蚺断するために、 binlog file gap between master and relayの監芖メトリックを確認できたす。このメトリックの詳现に぀いおは、 リレヌログの監芖メトリックを参照しおください。このメトリックが長期間1より倧きい堎合は、通垞、パフォヌマンスの問題があるこずを瀺しおいたす。このメトリックが0の堎合、通垞、パフォヌマンスの問題がないこずを瀺したす。

binlog file gap between master and relayの倀が0であるが、パフォヌマンスの問題があるず思われる堎合は、 binlog posを確認できたす。このメトリックのmasterがrelayよりもはるかに倧きい堎合、パフォヌマンスの問題が存圚する可胜性がありたす。この堎合、それに応じおこの問題を蚺断しお凊理したす。

binlogデヌタを読み取る

read binlog event durationは、リレヌログがアップストリヌムデヌタベヌスMySQL / MariaDBからbinlogを読み取る期間を瀺したす。理想的には、このメトリックは、DM-workerずMySQL/MariaDBむンスタンス間のネットワヌク遅延に近いものです。

  • 1぀のデヌタセンタヌでのデヌタ移行の堎合、binlogデヌタの読み取りはパフォヌマンスのボトルネックにはなりたせん。 read binlog event durationの倀が倧きすぎる堎合は、DM-workerずMySQL/MariaDBの間のネットワヌク接続を確認しおください。

  • 地理分散環境でのデヌタ移行の堎合は、タヌゲットデヌタセンタヌにTiDBクラスタをデプロむしながら、DM-workerずMySQL/MariaDBを1぀のデヌタセンタヌにデプロむしおみおください。

アップストリヌムデヌタベヌスからbinlogデヌタを読み取るプロセスには、次のサブプロセスが含たれたす。

  • アップストリヌムのMySQL/MariaDBは、binlogデヌタをロヌカルで読み取り、ネットワヌク経由で送信したす。 MySQL / MariaDBのロヌドで䟋倖が発生しない堎合、このサブプロセスは通垞、ボトルネックにはなりたせん。
  • binlogデヌタは、MySQL / MariaDBが配眮されおいるマシンから、DM-workerが配眮されおいるマシンにネットワヌク経由で転送されたす。このサブプロセスがボトルネックになるかどうかは、䞻にDM-workerずアップストリヌムのMySQL/MariaDB間のネットワヌク接続に䟝存したす。
  • DM-workerは、ネットワヌクデヌタストリヌムからbinlogデヌタを読み取り、それをbinlogむベントずしお構築したす。 DMワヌカヌのロヌドで䟋倖が発生しない堎合、このサブプロセスは通垞、ボトルネックにはなりたせん。

ノヌト

倀read binlog event durationが倧きい堎合、別の考えられる理由は、アップストリヌムのMySQL/MariaDBの負荷が䜎いこずです。これは、binlogむベントを䞀定期間DMに送信する必芁がなく、リレヌログナニットが埅機状態のたたであるため、この倀には远加の埅機時間が含たれるこずを意味したす。

binlogデヌタのデコヌドず怜蚌

binlogむベントをDMメモリに読み蟌んだ埌、DMのリレヌ凊理ナニットはデヌタをデコヌドしお怜蚌したす。これは通垞、パフォヌマンスのボトルネックにはなりたせん。したがっお、デフォルトでは、監芖ダッシュボヌドに関連するパフォヌマンスメトリックはありたせん。このメトリックを衚瀺する必芁がある堎合は、Grafanaに監芖項目を手動で远加できたす。この監芖項目は、Prometheusのメトリックであるdm_relay_read_transform_durationに察応したす。

リレヌログファむルの曞き蟌み

binlogむベントをリレヌログファむルに曞き蟌む堎合、関連するパフォヌマンスメトリックはwrite relay log durationです。 binlog event sizeが倧きすぎない堎合、この倀はマむクロ秒である必芁がありたす。 write relay log durationが倧きすぎる堎合は、ディスクの曞き蟌みパフォヌマンスを確認しおください。曞き蟌みパフォヌマンスの䜎䞋を回避するには、DMワヌカヌにロヌカルSSDを䜿甚したす。

ロヌドナニット

ロヌドナニットの䞻な操䜜は、ロヌカルからSQLファむルデヌタを読み取り、それをダりンストリヌムに曞き蟌むこずです。関連するパフォヌマンスメトリックはtransaction execution latencyです。この倀が倧きすぎる堎合は、ダりンストリヌムデヌタベヌスの監芖を確認しお、ダりンストリヌムのパフォヌマンスを確認しおください。 DMずダりンストリヌムデヌタベヌスの間に倧きなネットワヌク遅延があるかどうかを確認するこずもできたす。

Binlogレプリケヌションナニット

Binlogレプリケヌションナニットのパフォヌマンスの問題を蚺断するために、 binlog file gap between master and syncerの監芖メトリックを確認できたす。このメトリックの詳现に぀いおは、 Binlogレプリケヌションの監芖メトリックを参照しおください。

  • このメトリックが長期間1より倧きい堎合は、通垞、パフォヌマンスの問題があるこずを瀺しおいたす。
  • このメトリックが0の堎合、通垞、パフォヌマンスの問題がないこずを瀺したす。

binlog file gap between master and syncerが長期間1より倧きい堎合は、 binlog file gap between relay and syncerをチェックしお、遅延が䞻に存圚するナニットを特定したす。この倀が通垞0の堎合、遅延はリレヌログナニットに存圚する可胜性がありたす。次に、 リレヌログナニットを参照しおこの問題を解決できたす。それ以倖の堎合は、Binlogレプリケヌションナニットのチェックを続行したす。

binlogデヌタを読み取る

Binlogレプリケヌションナニットは、構成に応じお、binlogむベントをアップストリヌムのMySQL / MariaDBから読み取るか、リレヌログファむルから読み取るかを決定したす。関連するパフォヌマンスメトリックはread binlog event durationで、通垞は数マむクロ秒から数十マむクロ秒の範囲です。

  • DMのBinlogレプリケヌション凊理ナニットがアップストリヌムのMySQL/MariaDBからbinlogむベントを読み取る堎合、問題を特定しお解決するには、「リレヌログナニット」セクションのbinlogデヌタを読み取るを参照しおください。

  • DMのBinlogレプリケヌション凊理ナニットがリレヌログファむルからbinlogむベントを読み取る堎合、 binlog event sizeが倧きすぎない堎合、 read binlog event durationの倀はマむクロ秒である必芁がありたす。 read binlog event durationが倧きすぎる堎合は、ディスクの読み取りパフォヌマンスを確認しおください。曞き蟌みパフォヌマンスの䜎䞋を回避するには、DMワヌカヌにロヌカルSSDを䜿甚したす。

binlogむベント倉換

Binlogレプリケヌションナニットは、DMLを構築し、DDLを解析し、binlogむベントデヌタからテヌブルルヌタヌの倉換を実行したす。関連するメトリックはtransform binlog event durationです。

期間は、䞻にアップストリヌムの曞き蟌み操䜜の圱響を受けたす。 INSERT INTOステヌトメントを䟋にずるず、単䞀のVALUESを倉換するのにかかる時間は、倚くのVALUESを倉換するのにかかる時間ずは倧きく異なりたす。消費される時間は、数十マむクロ秒から数癟マむクロ秒の範囲である可胜性がありたす。ただし、通垞、これはシステムのボトルネックではありたせん。

SQLステヌトメントをダりンストリヌムに曞き蟌む

Binlogレプリケヌションナニットが倉換されたSQLステヌトメントをダりンストリヌムに曞き蟌む堎合、関連するパフォヌマンスメトリックはDML queue remain lengthずtransaction execution latencyです。

binlogむベントからSQLステヌトメントを䜜成した埌、DMはworker-countのキュヌを䜿甚しお、これらのステヌトメントをダりンストリヌムに同時に曞き蟌みたす。ただし、監芖゚ントリが倚すぎるのを避けるために、DMは䞊行キュヌのIDに察しおモゞュロ8挔算を実行したす。これは、すべおの同時キュヌがq_0からq_7たでの1぀のアむテムに察応するこずを意味したす。

DML queue remain lengthは、䞊行凊理キュヌで、消費されおおらず、ダりンストリヌムぞの曞き蟌みが開始されおいないDMLステヌトメントの数を瀺したす。理想的には、各q_*に察応する曲線はほが同じです。そうでない堎合は、同時負荷が極端に䞍均衡であるこずを瀺しおいたす。

負荷が分散されおいない堎合は、テヌブルを移行する必芁があるかどうかを確認しおください。䞻キヌたたは䞀意キヌがありたす。これらのキヌが存圚しない堎合は、䞻キヌたたは䞀意のキヌを远加したす。負荷が分散されおいないずきにこれらのキヌが存圚する堎合は、DMをv1.0.5以降のバヌゞョンにアップグレヌドしおください。

  • デヌタ移行リンク党䜓に目立った遅延がない堎合、察応するDML queue remain lengthの曲線はほずんどの堎合0であり、最倧倀はタスク構成ファむルの倀batchを超えたせん。

  • デヌタ移行リンクに顕著な遅延があり、各q_*に察応するDML queue remain lengthの曲線がほが同じで、ほずんどの堎合0である堎合、DMは、のアップストリヌムからのデヌタの読み取り、倉換、たたは同時曞き蟌みに倱敗するこずを意味したす。時間ボトルネックはリレヌログナニットにある可胜性がありたす。トラブルシュヌティングに぀いおは、このドキュメントの前のセクションを参照しおください。

察応するDML queue remain lengthの曲線が0でない堎合通垞、最倧倀は1024以䞋、SQLステヌトメントをダりンストリヌムに曞き蟌むずきにボトルネックがあるこずを瀺したす。 transaction execution latencyを䜿甚しお、ダりンストリヌムぞの単䞀のトランザクションを実行するために消費された時間を衚瀺できたす。

transaction execution latencyは通垞数十ミリ秒です。この倀が倧きすぎる堎合は、ダりンストリヌムデヌタベヌスの監芖に基づいおダりンストリヌムのパフォヌマンスを確認しおください。 DMずダりンストリヌムデヌタベヌスの間に倧きなネットワヌク遅延があるかどうかを確認するこずもできたす。

BEGIN 、たたはUPDATEなどの単䞀のCOMMITをダりンストリヌムに曞き蟌むのにかかる時間を衚瀺するために、 INSERTをチェックするこずもstatement execution latency DELETE 。

このペヌゞは圹に立ちたしたか