

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Aurora PostgreSQL 中監控本機寫入轉送
<a name="aurora-postgresql-write-forwarding-monitoring"></a>

使用下列各節，您可以監控 Aurora PostgreSQL 叢集中的本機寫入轉送，包括相關的 CloudWatch 指標和等待事件，以追蹤效能並識別潛在問題。

## 用於寫入轉送的 Amazon CloudWatch 指標和 Aurora PostgreSQL 狀態變數
<a name="aurora-postgresql-write-forwarding-cloudwatch"></a>

 當您在一或多個僅供讀取複本上使用寫入轉送時，下列 Amazon CloudWatch 指標適用於寫入器資料庫執行個體。


| CloudWatch 指標 | 單位和描述 | 
| --- | --- | 
| `AuroraLocalForwardingWriterDMLThroughput` | 計數 (每秒) 此寫入器資料庫執行個體每秒處理的轉送 DML 陳述式數目。 | 
| `AuroraLocalForwardingWriterOpenSessions` | 計數。此寫入器資料庫執行個體處理轉送查詢的開啟工作階段數目。 | 
| `AuroraLocalForwardingWriterTotalSessions` | 計數。此寫入器資料庫執行個體上轉送的工作階段總數。 | 

 下列 CloudWatch 指標適用於每個僅供讀取複本。這些指標的測量是在啟用本機寫入轉送的資料庫叢集中，每個讀取器資料庫執行個體上進行。


| CloudWatch 指標 | 單位和描述 | 
| --- | --- | 
| `AuroraForwardingReplicaCommitThroughput` |  計數 (每秒) 此複本每秒轉送之工作階段中的遞交數目。 | 
| `AuroraForwardingReplicaDMLLatency` |  毫秒。複本上轉送 DML 的平均回應時間 (以毫秒為單位)。 | 
| `AuroraForwardingReplicaDMLThroughput` |  計數 (每秒) 每秒在此複本上處理的轉送 DML 陳述式數目。 | 
| `AuroraForwardingReplicaErrorSessionsLimit` |  計數。由於達到連線數上限或寫入轉送連線數上限而被寫入器資料庫執行個體拒絕的工作階段數目。 | 
| `AuroraForwardingReplicaOpenSessions` |  計數。在複本執行個體上使用本機寫入轉送的工作階段數目。 | 
| `AuroraForwardingReplicaReadWaitLatency` | 毫秒。複本等待與寫入器資料庫執行個體的 LSN 保持一致的平均等待時間 (毫秒)。讀取器資料庫執行個體等待的程度取決於 apg\_write\_forward.consistency\_mode 設定。如需有關此設定的詳細資訊，請參閱 [Aurora PostgreSQL 中寫入轉送的組態參數](aurora-global-database-write-forwarding-apg.md#aurora-global-database-write-forwarding-params-apg)。 | 

## Aurora PostgreSQL 中本機寫入轉送的等待事件
<a name="aurora-postgresql-write-forwarding-wait-events-apg"></a>

當您搭配 Aurora PostgreSQL 使用寫入轉送時，Amazon Aurora 會產生下列等待事件。

**Topics**
+ [IPC:AuroraWriteForwardConnect](#apg-waits.ipcaurorawriteforwardconnect)
+ [IPC:AuroraWriteForwardConsistencyPoint](#apg-waits.ipcaurorawriteforwardconsistencypoint)
+ [IPC:AuroraWriteForwardExecute](#apg-waits.ipc:aurorawriteforwardexecute)
+ [IPC:AuroraWriteForwardGetGlobalConsistencyPoint](#apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint)
+ [IPC:AuroraWriteForwardXactAbort](#apg-waits.ipc:aurorawriteforwardxactabort)
+ [IPC:AuroraWriteForwardXactCommit](#apg-waits.ipc:aurorawriteforwardxactcommit)
+ [IPC:AuroraWriteForwardXactStart](#apg-waits.ipc:aurorawriteforwardxactstart)

### IPC:AuroraWriteForwardConnect
<a name="apg-waits.ipcaurorawriteforwardconnect"></a>

當僅供讀取複本上的後端程序正在等待寫入器資料庫執行個體的連線開啟時，就會發生 `IPC:AuroraWriteForwardConnect` 事件。

**等待時間增加的可能原因**

隨著從僅供讀取複本到寫入器節點的連線嘗試次數增加，此事件也會增加。

**動作**

減少從僅供讀取複本到寫入器節點的同時連線數目。

### IPC:AuroraWriteForwardConsistencyPoint
<a name="apg-waits.ipcaurorawriteforwardconsistencypoint"></a>

`IPC:AuroraWriteForwardConsistencyPoint` 事件描述來自僅供讀取複本上節點的查詢將等待轉送的寫入操作的結果複寫到目前區域的時間。只有在工作階段層級參數 `apg_write_forward.consistency_mode` 設定為下列其中一項時，才會產生此事件：
+ `SESSION` – 僅供讀取複本上的查詢會等待該工作階段中所做之所有變更的結果。
+ `GLOBAL` – 僅供讀取複本上的查詢會等待該工作階段所做的變更結果，以及寫入器資料庫執行個體和僅供讀取複本的所有遞交變更。

如需有關 `apg_write_forward.consistency_mode` 參數設定的資訊，請參閱 [Aurora PostgreSQL 中寫入轉送的組態參數](aurora-global-database-write-forwarding-apg.md#aurora-global-database-write-forwarding-params-apg)。

**等待時間增加的可能原因**

等待時間較長的常見原因如下：
+ 根據 Amazon CloudWatch `ReplicaLag` 指標所衡量的複本延遲增加。如需此指標的詳細資訊，請參閱 [監控 Aurora PostgreSQL 複寫](AuroraPostgreSQL.Replication.md#AuroraPostgreSQL.Replication.Monitoring)。
+ 增加寫入器資料庫執行個體或僅供讀取複本的負載。

**動作**

請根據應用程式的需求變更一致性模式。

### IPC:AuroraWriteForwardExecute
<a name="apg-waits.ipc:aurorawriteforwardexecute"></a>

當僅供讀取複本上的後端程序正在等待轉送的查詢完成，並從資料庫叢集的寫入器節點取得結果時，就會發生 `IPC:AuroraWriteForwardExecute` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 從寫入器節點擷取大量的行。
+ 寫入器節點與僅供讀取複本之間的網路延遲增加，會增加僅供讀取複本從寫入器節點接收資料所花費的時間。
+ 增加僅供讀取複本的負載可能會延遲查詢請求從僅供讀取複本傳輸到寫入器節點。
+ 寫入器節點上的負載增加，可能會延遲將資料從寫入器節點傳輸至僅供讀取複本。

**動作**

根據等待事件的原因，我們會建議不同的動作。
+ 最佳化查詢以僅擷取必要的資料。
+ 將資料處理語言 (DML) 操作最佳化，以僅修改必要的資料。
+ 如果僅供讀取複本或寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardGetGlobalConsistencyPoint
<a name="apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint"></a>

當僅供讀取複本上使用全域一致性模式的後端程序在執行查詢之前等待從寫入器節點取得全域一致性點時，就會發生 `IPC:AuroraWriteForwardGetGlobalConsistencyPoint` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 僅供讀取複本與寫入器節點之間的網路延遲增加，會增加僅供讀取複本從寫入器節點接收資料所花費的時間。
+ 增加僅供讀取複本的負載可能會延遲查詢請求從僅供讀取複本傳輸到寫入器節點。
+ 寫入器節點上的負載增加，可能會延遲將資料從寫入器節點傳輸至僅供讀取複本。

**動作**

根據等待事件的原因，我們會建議不同的動作。
+ 請根據應用程式的需求變更一致性模式。
+ 如果僅供讀取複本或寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardXactAbort
<a name="apg-waits.ipc:aurorawriteforwardxactabort"></a>

僅供讀取複本上的後端程序正在等待遠端清除查詢的結果時，就會發生 `IPC:AuroraWriteForwardXactAbort` 事件。在中止寫入轉送的交易之後，會發出清除查詢以將程序返回到適當的狀態。Amazon Aurora 執行這些操作可能是因為發現錯誤，也可能是因為使用者發出了明確的 `ABORT` 命令或取消了正在執行的查詢。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 僅供讀取複本與寫入器節點之間的網路延遲增加，會增加僅供讀取複本從寫入器節點接收資料所花費的時間。
+ 增加僅供讀取複本的負載可能會延遲將清除查詢請求從僅供讀取複本傳輸到寫入器節點。
+ 寫入器節點上的負載增加，可能會延遲將資料從寫入器節點傳輸至僅供讀取複本。

**動作**

根據等待事件的原因，我們會建議不同的動作。
+ 調查中止交易的原因。
+ 如果僅供讀取複本或寫入器資料庫執行個體受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardXactCommit
<a name="apg-waits.ipc:aurorawriteforwardxactcommit"></a>

當僅供讀取複本上的後端程序正在等待轉送的 commit 交易命令的結果時，就會發生 `IPC:AuroraWriteForwardXactCommit` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 僅供讀取複本與寫入器節點之間的網路延遲增加，會增加僅供讀取複本從寫入器節點接收資料所花費的時間。
+ 增加僅供讀取複本的負載可能會延遲查詢請求從僅供讀取複本傳輸到寫入器節點。
+ 寫入器節點上的負載增加，可能會延遲將資料從寫入器節點傳輸至僅供讀取複本。

**動作**

如果僅供讀取複本或寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。

### IPC:AuroraWriteForwardXactStart
<a name="apg-waits.ipc:aurorawriteforwardxactstart"></a>

當僅供讀取複本上的後端程序正在等待轉送的 start 交易命令的結果時，就會發生 `IPC:AuroraWriteForwardXactStart` 事件。

**等待時間增加的可能原因**

等待時間增加的常見原因包括：
+ 僅供讀取複本與寫入器節點之間的網路延遲增加，會增加僅供讀取複本從寫入器節點接收資料所花費的時間。
+ 增加僅供讀取複本的負載可能會延遲查詢請求從僅供讀取複本傳輸到寫入器節點。
+ 寫入器節點上的負載增加，可能會延遲將資料從寫入器節點傳輸至僅供讀取複本。

**動作**

如果僅供讀取複本或寫入器節點受到 CPU 或網路頻寬的限制，請考慮將其變更為具有更多 CPU 容量或更多網路頻寬的執行個體類型。