Aurora PostgreSQL でのローカル書き込み転送のモニタリング - Amazon Aurora

Aurora PostgreSQL でのローカル書き込み転送のモニタリング

以下のセクションを使用すると、関連する CloudWatch メトリクスや待機イベントなど、Aurora PostgreSQL クラスターのローカル書き込み転送をモニタリングして、パフォーマンスを追跡し、潜在的な問題を特定できます。

書き込み転送のための Amazon CloudWatch メトリクスと Aurora PostgreSQL ステータス変数

1 つ以上のリードレプリカで書き込み転送を使用する場合、以下の Amazon CloudWatch メトリクスがライター DB インスタンスに適用されます。

CloudWatch メトリクス

単位と説明

AuroraLocalForwardingWriterDMLThroughput

1 秒あたりのカウント数。この書き込み DB インスタンスによって 1 秒間に処理される、転送された DML ステートメントの数。

AuroraLocalForwardingWriterOpenSessions

カウント。転送されたクエリを処理しているこのライター DB インスタンスで開いているセッションの数。

AuroraLocalForwardingWriterTotalSessions

カウント。このライター DB インスタンスで転送されたセッションの合計数。

以下の CloudWatch メトリクスは、各リードレプリカに適用されます。これらのメトリクスは、ローカル書き込み転送が有効になっている DB クラスター内の各リーダー DB インスタンスで測定されます。

CloudWatch メトリクス

単位と説明

AuroraForwardingReplicaCommitThroughput

1 秒あたりのカウント数。このレプリカが 1 秒あたりに転送したセッションのコミット数。

AuroraForwardingReplicaDMLLatency

ミリ秒。レプリカ上で転送された DML の平均応答時間 (ミリ秒)。

AuroraForwardingReplicaDMLThroughput

1 秒あたりのカウント数。このレプリカで 1 秒あたりに処理された転送 DML ステートメントの数。

AuroraForwardingReplicaErrorSessionsLimit

カウント。最大接続数または最大書き込み転送接続数の制限に達したためにライター DB インスタンスが拒否したセッションの数。

AuroraForwardingReplicaOpenSessions

カウント。レプリカインスタンスでローカル書き込み転送を使用しているセッションの数。

AuroraForwardingReplicaReadWaitLatency

ミリ秒。レプリカがライター DB インスタンスの LSN と一致するまで待機する平均待機時間 (ミリ秒単位)。リーダー DB インスタンスが待機する程度は、apg_write_forward.consistency_mode 設定によって異なります。この設定についての情報は、「Aurora PostgreSQL での書き込み転送の設定パラメータ」を参照してください。

Aurora PostgreSQL でのローカル書き込み転送の待機イベント

Aurora PostgreSQL で書き込み転送を使用すると、Amazon Aurora は次の待機イベントを生成します。

IPC:AuroraWriteForwardConnect

IPC:AuroraWriteForwardConnect イベントは、リードレプリカのバックエンドプロセスがライター DB インスタンスへの接続が開かれるまで待っているときに発生します。

待機時間が増加する原因の可能性

このイベントは、リードレプリカからライターノードへの接続試行回数が増えるに従って増加します。

アクション

リードレプリカからライターノードへの同時接続数を減らします。

IPC:AuroraWriteForwardConsistencyPoint

IPC:AuroraWriteForwardConsistencyPoint イベントは、リードレプリカのノードからのクエリが、転送された書き込みオペレーションの結果が現在のリージョンにレプリケートされるまで待機する時間を示します。このイベントは、セッションレベルのパラメータ apg_write_forward.consistency_mode が次のいずれかに設定されている場合にのみ生成されます。

  • SESSION — リードレプリカに対するクエリは、そのセッションで行われたすべての変更の結果を待機します。

  • GLOBAL – リードレプリカに対するクエリは、そのセッションで行われた変更の結果に加えて、ライター DB インスタンスとリードレプリカの両方からコミットされたすべての変更を待機します。

apg_write_forward.consistency_mode パラメータの設定の詳細については、「Aurora PostgreSQL での書き込み転送の設定パラメータ」をご参照ください。

待機時間が増加する原因の可能性

待機時間が長くなる一般的な原因には以下のものがあります。

  • レプリカの遅延の増加 (Amazon CloudWatch ReplicaLag メトリクスで測定)。このメトリクスの詳細については、「Aurora PostgreSQL レプリケーションのモニタリング」を参照してください。

  • ライター DB インスタンスまたはリードレプリカでの負荷の増加。

アクション

アプリケーションの要件に応じて、整合性モードを変更します。

IPC:AuroraWriteForwardExecute

IPC:AuroraWriteForwardExecute イベントは、リードレプリカのバックエンドプロセスが、クエリの転送が完了して DB クラスターのライターノードから結果を取得するまで待っているときに発生します。

待機時間が増加する原因の可能性

待機時間の増加の一般的な原因としては、以下が挙げられます。

  • ライターノードから多数の行を取得しています。

  • ライターノードとリードレプリカの間のネットワークレイテンシーが長くなると、リードレプリカがライターノードからデータを受信するまでにかかる時間が長くなります。

  • リードレプリカの負荷が増加すると、リードレプリカからライターノードへのクエリリクエストの送信が遅れる可能性があります。

  • ライターノードの負荷が増加すると、ライターノードからリードレプリカへのデータの送信が遅れる可能性があります。

アクション

待機イベントの原因に応じたさまざまなアクションをお勧めします。

  • 必要なデータのみを取得するようにクエリを最適化します。

  • データ操作言語 (DML) オペレーションを最適化し、必要なデータのみを変更します。

  • リードレプリカまたはライターノードが CPU やネットワーク帯域幅によって制約されている場合は、CPU キャパシティやネットワーク帯域幅のより大きいインスタンスタイプに変更することを検討してください。

IPC:AuroraWriteForwardGetGlobalConsistencyPoint

IPC:AuroraWriteForwardGetGlobalConsistencyPoint イベントは、GLOBAL 整合性モードを使用しているリードレプリカのバックエンドプロセスが、クエリを実行する前に、ライターノードからグローバル整合性ポイントを取得するのを待っているときに発生します。

待機時間が増加する原因の可能性

待機時間の増加の一般的な原因としては、以下が挙げられます。

  • リードレプリカとライターノードの間のネットワークレイテンシーが長くなると、リードレプリカがライターノードからデータを受信するまでにかかる時間が長くなります。

  • リードレプリカの負荷が増加すると、リードレプリカからライターノードへのクエリリクエストの送信が遅れる可能性があります。

  • ライターノードの負荷が増加すると、ライターノードからリードレプリカへのデータの送信が遅れる可能性があります。

アクション

待機イベントの原因に応じたさまざまなアクションをお勧めします。

  • アプリケーションの要件に応じて、整合性モードを変更します。

  • リードレプリカまたはライターノードが CPU やネットワーク帯域幅によって制約されている場合は、CPU キャパシティやネットワーク帯域幅のより大きいインスタンスタイプに変更することを検討してください。

IPC:AuroraWriteForwardXactAbort

IPC:AuroraWriteForwardXactAbort イベントは、リードレプリカのバックエンドプロセスがリモートクリーンアップクエリの結果を待っているときに発生します。クリーンアップクエリは、書き込み転送されたトランザクションが中止された後にプロセスを適切な状態に戻すために発行されます。Amazon Aurora は、エラーが見つかったか、ユーザーが明示的な ABORT コマンドを発行したか、実行中のクエリをキャンセルしたためにそれらを実行します。

待機時間が増加する原因の可能性

待機時間の増加の一般的な原因としては、以下が挙げられます。

  • リードレプリカとライターノードの間のネットワークレイテンシーが長くなると、リードレプリカがライターノードからデータを受信するまでにかかる時間が長くなります。

  • リードレプリカの負荷が増加すると、リードレプリカからライターノードへのクリーンアップクエリリクエストの送信が遅延する可能性があります。

  • ライターノードの負荷が増加すると、ライターノードからリードレプリカへのデータの送信が遅れる可能性があります。

アクション

待機イベントの原因に応じたさまざまなアクションをお勧めします。

  • 中断されたトランザクションの原因を調査します。

  • リードレプリカまたはライター DB インスタンスが CPU またはネットワーク帯域幅によって制約されている場合は、CPU キャパシティまたはネットワーク帯域幅のより大きいインスタンスタイプに変更することを検討してください。

IPC:AuroraWriteForwardXactCommit

IPC:AuroraWriteForwardXactCommit イベントは、リードレプリカのバックエンドプロセスが、トランザクションのコミットコマンドの転送結果を待っているときに発生します。

待機時間が増加する原因の可能性

待機時間の増加の一般的な原因としては、以下が挙げられます。

  • リードレプリカとライターノードの間のネットワークレイテンシーが長くなると、リードレプリカがライターノードからデータを受信するまでにかかる時間が長くなります。

  • リードレプリカの負荷が増加すると、リードレプリカからライターノードへのクエリリクエストの送信が遅れる可能性があります。

  • ライターノードの負荷が増加すると、ライターノードからリードレプリカへのデータの送信が遅れる可能性があります。

アクション

リードレプリカまたはライターノードが CPU やネットワーク帯域幅によって制約されている場合は、CPU キャパシティやネットワーク帯域幅のより大きいインスタンスタイプに変更することを検討してください。

IPC:AuroraWriteForwardXactStart

IPC:AuroraWriteForwardXactStart イベントは、リードレプリカのバックエンドプロセスが、トランザクションの開始コマンドの転送結果を待っているときに発生します。

待機時間が増加する原因の可能性

待機時間の増加の一般的な原因としては、以下が挙げられます。

  • リードレプリカとライターノードの間のネットワークレイテンシーが長くなると、リードレプリカがライターノードからデータを受信するまでにかかる時間が長くなります。

  • リードレプリカの負荷が増加すると、リードレプリカからライターノードへのクエリリクエストの送信が遅れる可能性があります。

  • ライターノードの負荷が増加すると、ライターノードからリードレプリカへのデータの送信が遅れる可能性があります。

アクション

リードレプリカまたはライターノードが CPU やネットワーク帯域幅によって制約されている場合は、CPU キャパシティやネットワーク帯域幅のより大きいインスタンスタイプに変更することを検討してください。