

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

# Limitless Database 等待事件
<a name="limitless-waits-reference"></a>

下列等待事件適用於 Aurora PostgreSQL Limitless Database。您可以監控這些等待事件，以識別 Aurora PostgreSQL Limitless Database 處理的瓶頸。

**Topics**
+ [IO:TwophaseFilePoolWrite 等待事件](#limitless-waits-TwophaseFilePoolWrite)
+ [IO:TwophaseFilePoolRead 等待事件](#limitless-waits-TwophaseFilePoolRead)
+ [AuroraLimitless:Connect 等待事件](#limitless-waits-Connect)
+ [AuroraLimitless:AsyncConnect 等待事件](#limitless-waits-AsyncConnect)
+ [AuroraLimitless:RemoteStatementSetup 等待事件](#limitless-waits-RemoteStatementSetup)
+ [AuroraLimitless:RemoteDDLExecution 等待事件](#limitless-waits-RemoteDDLExecution)
+ [AuroraLimitless:RemoteStatementExecution 等待事件](#limitless-waits-RemoteStatementExecution)
+ [AuroraLimitless:FetchRemoteResults 等待事件](#limitless-waits-FetchRemoteResults)
+ [AuroraLimitless:AsyncGetInitialResponse 等待事件](#limitless-waits-AsyncGetInitialResponse)
+ [AuroraLimitless:AsyncGetNextResponse 等待事件](#limitless-waits-AsyncGetNextResponse)
+ [AuroraLimitless:AbortedCommandCleanup 等待事件](#limitless-waits-AbortedCommandCleanup)
+ [AuroraLimitless:DistributedCommitPrepare 等待事件](#limitless-waits-DistributedCommitPrepare)
+ [AuroraLimitless:DistributedCommit 等待事件](#limitless-waits-DistributedCommit)
+ [AuroraLimitless:DistributedCommitPrepareThrottle 等待事件](#limitless-waits-DistributedCommitPrepareThrottle)
+ [AuroraLimitless:PreparedTransactionResolution 等待事件](#limitless-waits-PreparedTransactionResolution)
+ [AuroraLimitless:SendPreparedTransactionOutcome 等待事件](#limitless-waits-SendPreparedTransactionOutcome)
+ [AuroraLimitless:CommitClockBarrier 等待事件](#limitless-waits-CommitClockBarrier)
+ [AuroraLimitless:SnapshotClockBarrier 等待事件](#limitless-waits-SnapshotClockBarrier)
+ [AuroraLimitless:ReaderSnapshotClockBarrier 等待事件](#limitless-waits-ReaderSnapshotClockBarrier)
+ [AuroraLimitless:GatherDistributedDeadlockGraph 等待事件](#limitless-waits-GatherDistributedDeadlockGraph)
+ [AuroraLimitless:DistributedDeadlockDetection 等待事件](#limitless-waits-DistributedDeadlockDetection)
+ [AuroraLimitless:DistributedDeadlockAbort 等待事件](#limitless-waits-DistributedDeadlockAbort)
+ [AuroraLimitless:GatherRemoteStats 等待事件](#limitless-waits-GatherRemoteStats)
+ [AuroraLimitless:GlobalSequenceRefresh 等待事件](#limitless-waits-GlobalSequenceRefresh)
+ [AuroraLimitless:GlobalVacuumTimeExchange 等待事件](#limitless-waits-GlobalVacuumTimeExchange)
+ [AuroraLimitless:DistributedTransactionMonitorGather 等待事件](#limitless-waits-DistributedTransactionMonitorGather)
+ [AuroraLimitlessActivity:AdminTaskSchedulerMain 等待事件](#limitless-waits-AdminTaskSchedulerMain)
+ [AuroraLimitlessActivity:AdminTaskExecutorMain 等待事件](#limitless-waits-AdminTaskExecutorMain)
+ [AuroraLimitlessActivity:AdminTaskMonitorMain 等待事件](#limitless-waits-AdminTaskMonitorMain)
+ [AuroraLimitlessActivity:DatabaseCleanupMonitorMain 等待事件](#limitless-waits-DatabaseCleanupMonitorMain)
+ [AuroraLimitlessActivity:TopologyCleanupMonitorMain 等待事件](#limitless-waits-TopologyCleanupMonitorMain)
+ [AuroraLimitlessActivity:ToplogyChangeMonitorMain 等待事件](#limitless-waits-ToplogyChangeMonitorMain)
+ [AuroraLimitlessActivity:DistributedTransactionMonitorMain 等待事件](#limitless-waits-DistributedTransactionMonitorMain)
+ [AuroraLimitlessActivity:GlobalVacuumMonitorMain 等待事件](#limitless-waits-GlobalVacuumMonitorMain)

## IO:TwophaseFilePoolWrite 等待事件
<a name="limitless-waits-TwophaseFilePoolWrite"></a>

等待在兩階段狀態檔案集區中寫入兩階段狀態檔案。這是 Aurora 特定的事件。

### 原因
<a name="limitless-waits-TwophaseFilePoolWrite.causes"></a>

`PREPARED TRANSACTION` 命令的執行程序 (包括 Limitless Database 分散式交易中的參與者)，都必須保留兩階段檔案中的交易狀態。Aurora 使用檔案集區來改善此操作的效能。

### 動作
<a name="limitless-waits-TwophaseFilePoolWrite.action"></a>

這是同步寫入 I/O 操作，因此在此事件中的高延遲具有與 `IO:XactSync` 相似的原因，並且可以以相同的方式接受調查。如果使用 Limitless Database，您可能需要減少執行中的分散式交易數量。

## IO:TwophaseFilePoolRead 等待事件
<a name="limitless-waits-TwophaseFilePoolRead"></a>

等待讀取兩階段狀態檔案集區中的兩階段狀態檔案。

### 原因
<a name="limitless-waits-TwophaseFilePoolWrite.causes"></a>

針對先前預備的交易執行 `COMMIT PREPARED` 命令的程序 (包括 Limitless Database 分散式交易的參與者)，都可能需要從兩階段檔案中讀取先前持續的交易狀態。Aurora 使用檔案集區來改善此操作的效能。

### 動作
<a name="limitless-waits-TwophaseFilePoolWrite.action"></a>

這是讀取 I/O 操作。因此，此事件中的高延遲具有與 `IO:DataFileRead` 類似的原因，而且可以以相同的方式接受調查。如果使用 Limitless Database，您可能需要減少執行中的分散式交易數量。

## AuroraLimitless:Connect 等待事件
<a name="limitless-waits-Connect"></a>

程序正在等待與叢集中另一個節點的連線建立完成。

### 原因
<a name="limitless-waits-Connect.causes"></a>

在程序和遠端節點之間建立連線，以執行查詢、分散式交易和執行 DDL。

### 動作
<a name="limitless-waits-Connect"></a>

減少叢集的同時連線數，或調校跨碎片查詢的使用。

## AuroraLimitless:AsyncConnect 等待事件
<a name="limitless-waits-AsyncConnect"></a>

此事件類似於 `Connect`，但代表等待與一組節點建立平行連線的程序。

### 原因
<a name="limitless-waits-AsyncConnect.causes"></a>

平行連線建立最常在執行 DDL 陳述式時完成。

### 動作
<a name="limitless-waits-AsyncConnect"></a>

減少 DDL 陳述式的數量，或在同一工作階段中合併多個 DDL，以改善連線重複使用。

## AuroraLimitless:RemoteStatementSetup 等待事件
<a name="limitless-waits-RemoteStatementSetup"></a>

程序正等待遠端查詢執行設定，例如游標開啟、關閉或預備陳述式建立。

### 原因
<a name="limitless-waits-TwophaseFilePoolRead"></a>

此等待事件會隨著碎片資料表上的掃描次數增加，其中陳述式無法進行單一碎片最佳化。

### 動作
<a name="limitless-waits-TwophaseFilePoolRead"></a>

最佳化查詢，以減少掃描操作的次數或提高單一碎片最佳化的資格。

## AuroraLimitless:RemoteDDLExecution 等待事件
<a name="limitless-waits-RemoteDDLExecution"></a>

程序正等待遠端 DDL 命令完成。

### 原因
<a name="limitless-waits-RemoteDDLExecution"></a>

當您在資料庫碎片群組發出 DDL 命令時，必須先將其分佈至其他路由器和碎片節點，才能確認操作。有些 DDL 操作可能會長時間執行，因為資料必須適應結構描述變更。

### 動作
<a name="limitless-waits-RemoteDDLExecution"></a>

識別長時間執行的 DDL 命令，讓您可以將其最佳化。

## AuroraLimitless:RemoteStatementExecution 等待事件
<a name="limitless-waits-RemoteStatementExecution"></a>

程序正等待遠端命令完成。

### 原因
<a name="limitless-waits-RemoteStatementExecution"></a>

SQL 命令正在遠端節點執行。此事件會經常因內部通訊而出現，例如 `auto_analyze` 和活動訊號檢查。

### 動作
<a name="limitless-waits-"></a>

識別使用 limitless\$1stat\$1statements 檢視的長時間執行命令。在許多情況下，這是預期事件 (對於背景工作者或內部程序尤其如此)，因此不需要採取任何動作。

## AuroraLimitless:FetchRemoteResults 等待事件
<a name="limitless-waits-FetchRemoteResults"></a>

程序正等待從遠端節點擷取列。

### 原因
<a name="limitless-waits-FetchRemoteResults"></a>

從遠端資料表 (例如碎片或參考資料表) 擷取大量列時，此等待事件可能會增加。

### 動作
<a name="limitless-waits-FetchRemoteResults"></a>

使用 `limitless_stat_statements` 檢視識別未最佳化的 `SELECT` 查詢。最佳化查詢以僅擷取必要的資料。您不能調校 `rds_aurora.limitless_maximum_adaptive_fetch_size` 參數。

## AuroraLimitless:AsyncGetInitialResponse 等待事件
<a name="limitless-waits-AsyncGetInitialResponse"></a>

在查詢執行中使用管道模式時，程序正等待初始回應。

### 原因
<a name="limitless-waits-AsyncGetInitialResponse"></a>

對於具有單一碎片資料放置的查詢，這通常會在路由器進行碎片執行期間出現，並且這是正常執行的預期部分。

### 動作
<a name="limitless-waits-AsyncGetInitialResponse"></a>

無需採取進一步動作。

## AuroraLimitless:AsyncGetNextResponse 等待事件
<a name="limitless-waits-AsyncGetNextResponse"></a>

在查詢執行中使用管道模式時，程序正等待額外的回應。

### 原因
<a name="limitless-waits-AsyncGetNextResponse"></a>

對於具有單一碎片資料放置的查詢，這通常會在路由器進行碎片執行期間出現，並且這是正常執行的預期部分。

### 動作
<a name="limitless-waits-AsyncGetNextResponse"></a>

無需採取進一步動作。

## AuroraLimitless:AbortedCommandCleanup 等待事件
<a name="limitless-waits-AbortedCommandCleanup"></a>

程序正等待遠端清除查詢的結果。會將清除查詢發行給碎片節點，以在分散式交易結束時將其恢復至適當的狀態。

### 原因
<a name="limitless-waits-AbortedCommandCleanup"></a>

交易因為發現錯誤或使用者發出明確的 ABORT 命令或取消執行中的查詢而中止時，就會完成交易清除。

### 動作
<a name="limitless-waits-AbortedCommandCleanup.action"></a>

調查交易的取消原因。

## AuroraLimitless:DistributedCommitPrepare 等待事件
<a name="limitless-waits-DistributedCommitPrepare"></a>

程序正在遞交分散式交易，並等待所有參與者確認準備命令。

### 原因
<a name="limitless-waits-DistributedCommitPrepare"></a>

修改多個節點的交易必須執行分散式遞交。在 `DistributedCommitPrepare` 中長時間等待可能是由於參與節點上 `IO:TwophaseFilePoolWrite` 事件長時間等待所致。

### 動作
<a name="limitless-waits-DistributedCommitPrepare.action"></a>

減少交易數量，這些交易會修改多個節點上的資料。調查叢集其他節點中的 `IO:TwophaseFilePoolWrite` 事件。

## AuroraLimitless:DistributedCommit 等待事件
<a name="limitless-waits-DistributedCommit"></a>

程序正在遞交分散式交易，並等待主要參與者確認遞交命令。

### 原因
<a name="limitless-waits-DistributedCommit.causes"></a>

修改多個節點的交易必須執行分散式遞交。在 `DistributedCommit` 中長時間等待可能是由於主要參與者上 `IO:XactSync` 事件長時間等待所致。

### 動作
<a name="limitless-waits-DistributedCommit.action"></a>

減少交易數量，這些交易會修改多個節點上的資料。調查叢集其他節點中的 `IO:XactSync` 事件。

## AuroraLimitless:DistributedCommitPrepareThrottle 等待事件
<a name="limitless-waits-DistributedCommitPrepareThrottle"></a>

程序正嘗試準備分散式交易，而且由於現有的預備交易而受到限流。

### 原因
<a name="limitless-waits-DistributedCommitPrepareThrottle.causes"></a>

修改多個節點的交易必須執行分散式遞交。在遞交通訊協定的過程中，這些交易中的參與者必須執行準備操作。Aurora 會限制並行準備的數量，如果超過此限制，程序將在 `DistributedCommitPrepareThrottle` 事件中等待。

### 動作
<a name="limitless-waits-DistributedCommitPrepareThrottle.action"></a>

減少交易數量，這些交易會修改多個節點上的資料。在那些事件中因為時間增加而調查 `IO:TwophaseFilePoolWrite` 事件，可能會導致現有的預備交易累積，進而導致新的準備嘗試受到限流。

## AuroraLimitless:PreparedTransactionResolution 等待事件
<a name="limitless-waits-PreparedTransactionResolution"></a>

程序遇到元組，處於預備狀態的分散式交易會修改該元組。程序必須判斷分散式交易是否會出現在其快照中。

### 原因
<a name="limitless-waits-PreparedTransactionResolution.causes"></a>

修改多個節點的交易必須執行內含準備階段的分散式遞交。大量分散式交易或分散式遞交的延遲增加可能會導致其他程序遇到 `PreparedTransactionResolution` 等待事件。

### 動作
<a name="limitless-waits-PreparedTransactionResolution.action"></a>

減少交易數量，這些交易會修改多個節點上的資料。調查分散式遞交相關事件，因為在那些事件中的時間增加，可能會延長分散式交易遞交路徑的延遲。您也可以調查網路和 CPU 負載。

## AuroraLimitless:SendPreparedTransactionOutcome 等待事件
<a name="limitless-waits-SendPreparedTransactionOutcome"></a>

程序正在協調分散式交易的節點上執行，而另一個程序已查詢該交易的狀態，或該程序已遞交分散式交易，以及將成果傳送給參與者。

### 原因
<a name="limitless-waits-SendPreparedTransactionOutcome.causes"></a>

遇到 `PreparedTransactionResolution` 等待事件的程序將查詢交易協調器。交易協調器上的回應會遇到 SendPreparedTransactionOutcome。

### 動作
<a name="limitless-waits-SendPreparedTransactionOutcome.action"></a>

減少交易數量，這些交易會修改多個節點上的資料。調查分散式遞交相關事件 `IO:TwophaseFilePoolWrite` 和 `IO:TwophaseFilePoolRead` 事件，因為那些事件可能會延長分散式交易遞交路徑的延遲。您也可以調查網路和 CPU 負載。

## AuroraLimitless:CommitClockBarrier 等待事件
<a name="limitless-waits-CommitClockBarrier"></a>

程序正在遞交交易而且必須等待，以確保叢集中所有節點的指派遞交時間都必定是過去的時間。

### 原因
<a name="limitless-waits-CommitClockBarrier.causes"></a>

CPU 或網路飽和度可能會導致時鐘偏離增加，導致在此等待事件中花費的時間增加。

### 動作
<a name="limitless-waits-CommitClockBarrier.action"></a>

調查叢集中的 CPU 或網路飽和度。

## AuroraLimitless:SnapshotClockBarrier 等待事件
<a name="limitless-waits-SnapshotClockBarrier"></a>

程序已收到來自另一個節點的快照時間，該節點未來有時鐘，並正等待自己的時鐘到達該時間。

### 原因
<a name="limitless-waits-SnapshotClockBarrier.causes"></a>

這通常發生在程序從下推到碎片的函數接收結果後，且節點之間存在時鐘偏離時。CPU 或網路飽和度可能會導致時鐘偏離增加，導致在此等待事件中花費的時間增加。

### 動作
<a name="limitless-waits-SnapshotClockBarrier.action"></a>

調查叢集中的 CPU 或網路飽和度。

## AuroraLimitless:ReaderSnapshotClockBarrier 等待事件
<a name="limitless-waits-ReaderSnapshotClockBarrier"></a>

此事件會在讀取節點發生。此程序正等待讀取節點重播寫入串流，以便套用程序快照時間之前發生的所有寫入。

### 原因
<a name="limitless-waits-ReaderSnapshotClockBarrier.causes"></a>

Aurora 複本延遲中的增加可能會導致此事件的等待時間增加。

### 動作
<a name="limitless-waits-ReaderSnapshotClockBarrier.action"></a>

調查 Aurora 複本延遲。

## AuroraLimitless:GatherDistributedDeadlockGraph 等待事件
<a name="limitless-waits-GatherDistributedDeadlockGraph"></a>

程序正與其他節點通訊，以收集鎖定圖形作為分散式死鎖偵測的一部分。

### 原因
<a name="limitless-waits-GatherDistributedDeadlockGraph.causes"></a>

當程序等待鎖定時，會在等待超過 `rds_aurora.limitless_distributed_deadlock_timeout` 之後執行分散式死鎖檢查。

### 動作
<a name="limitless-waits-GatherDistributedDeadlockGraph"></a>

調查應用程式中鎖定爭用的原因，並考慮調校 `rds_aurora.limitless_distributed_deadlock_timeout`。

## AuroraLimitless:DistributedDeadlockDetection 等待事件
<a name="limitless-waits-DistributedDeadlockDetection"></a>

程序正與其他節點通訊，以偵測分散式死鎖。

### 原因
<a name="limitless-waits-DistributedDeadlockDetection.causes"></a>

當程序等待鎖定時，會在等待超過 `rds_aurora.limitless_distributed_deadlock_timeout` 之後執行分散式死鎖檢查。

### 動作
<a name="limitless-waits-DistributedDeadlockDetection.action"></a>

調查應用程式中鎖定爭用的原因，並考慮調校 `rds_aurora.limitless_distributed_deadlock_timeout`。

## AuroraLimitless:DistributedDeadlockAbort 等待事件
<a name="limitless-waits-DistributedDeadlockAbort"></a>

程序正與其他節點通訊，以中止選擇為分散式死鎖中受害者的工作階段。

### 原因
<a name="limitless-waits-DistributedDeadlockAbort.causes"></a>

應用程式模式會產生分散式死鎖。

### 動作
<a name="limitless-waits-DistributedDeadlockAbort.action"></a>

調查導致分散式死鎖的應用程式模式。

## AuroraLimitless:GatherRemoteStats 等待事件
<a name="limitless-waits-GatherRemoteStats"></a>

此程序正從叢集中的其他節點收集統計資料。

### 原因
<a name="limitless-waits-GatherRemoteStats.causes"></a>

監控或活動查詢和檢視 (例如 `limitless_stat_activity`)，將從其他節點擷取統計資料。

### 動作
<a name="limitless-waits-GatherRemoteStats.action"></a>

無需採取進一步動作。

## AuroraLimitless:GlobalSequenceRefresh 等待事件
<a name="limitless-waits-GlobalSequenceRefresh"></a>

此程序正在產生新的序列值，必須向全域序列請求新的區塊。

### 原因
<a name="limitless-waits-GlobalSequenceRefresh.causes"></a>

如果 `rds_aurora.limitless_sequence_chunk_size` 不足，產生高速率的序列值可能會導致在此事件中停滯。

### 動作
<a name="limitless-waits-GlobalSequenceRefresh.action"></a>

這是正常情況。如果您在此事件中看到時間過長，請考慮調校 `rds_aurora.limitless_sequence_chunk_size`。請參閱 Limitless Database 中序列的相關文件。

## AuroraLimitless:GlobalVacuumTimeExchange 等待事件
<a name="limitless-waits-GlobalVacuumTimeExchange"></a>

程序正在交換快照資料以支援清空。

### 原因
<a name="limitless-waits-GlobalVacuumTimeExchange.causes"></a>

Limitless Database 中的節點與其他節點交換最舊的作用中快照時間資料，以計算清空執行的正確截止時間。

### 動作
<a name="limitless-waits-GlobalVacuumTimeExchange.action"></a>

無需採取進一步動作。

## AuroraLimitless:DistributedTransactionMonitorGather 等待事件
<a name="limitless-waits-DistributedTransactionMonitorGather"></a>

此程序是從其他節點收集交易中繼資料，以支援分散式交易清除。

### 原因
<a name="limitless-waits-DistributedTransactionMonitorGather.causes"></a>

Limitless Database 中的節點與其他節點交換交易中繼資料，以判斷何時可以清除分散式交易狀態。

### 動作
<a name="limitless-waits-DistributedTransactionMonitorGather.action"></a>

無需採取進一步動作。

## AuroraLimitlessActivity:AdminTaskSchedulerMain 等待事件
<a name="limitless-waits-AdminTaskSchedulerMain"></a>

在任務排程器程序的主迴圈中等待。

## AuroraLimitlessActivity:AdminTaskExecutorMain 等待事件
<a name="limitless-waits-AdminTaskExecutorMain"></a>

在任務執行器程序的主迴圈中等待。

## AuroraLimitlessActivity:AdminTaskMonitorMain 等待事件
<a name="limitless-waits-AdminTaskMonitorMain"></a>

在任務監控程序的主迴圈中等待。

## AuroraLimitlessActivity:DatabaseCleanupMonitorMain 等待事件
<a name="limitless-waits-DatabaseCleanupMonitorMain"></a>

在資料庫清除監控程序的主迴圈中等待。

## AuroraLimitlessActivity:TopologyCleanupMonitorMain 等待事件
<a name="limitless-waits-TopologyCleanupMonitorMain"></a>

在拓撲清理監控程序的主迴圈中等待。

## AuroraLimitlessActivity:ToplogyChangeMonitorMain 等待事件
<a name="limitless-waits-ToplogyChangeMonitorMain"></a>

在拓撲變更監控程序的主迴圈中等待。

## AuroraLimitlessActivity:DistributedTransactionMonitorMain 等待事件
<a name="limitless-waits-DistributedTransactionMonitorMain"></a>

在分散式交易監控程序的主迴圈中等待。

## AuroraLimitlessActivity:GlobalVacuumMonitorMain 等待事件
<a name="limitless-waits-GlobalVacuumMonitorMain"></a>

等待全域清空監控程序的主迴圈。