在多執行緒副本上,效能結構描述資料表 replication_applier_status_by_coordinator
和 replication_applier_status_by_worker
分別顯示副本協調器執行緒和應用程式工作執行緒的狀態資訊。對於具有多個通道的副本,會識別每個通道的執行緒。
如果詳細程度設定為顯示資訊訊息,多執行緒副本的協調器執行緒也會定期將統計資料列印到副本的錯誤日誌。統計資料會根據協調器執行緒已指派給應用程式工作執行緒的事件量列印,最大頻率為每 120 秒一次。該訊息會列出相關複製通道或預設複製通道(未命名)的以下統計資料
- 經過的秒數
目前時間與上次將此資訊列印到錯誤日誌之間的時間差,以秒為單位。
- 已指派的事件
自協調器執行緒啟動以來,協調器執行緒已排入所有應用程式工作執行緒佇列的事件總數。
- 工作佇列填滿超過超限等級
目前排入任何應用程式工作執行緒佇列,超出超限等級的事件數。超限等級設定為 16384 個事件的最大佇列長度的 90%。如果此值為零,則沒有應用程式工作執行緒在其容量上限運作。
- 因工作佇列已滿而等待
協調器執行緒因應用程式工作執行緒的佇列已滿而必須等待排程事件的次數。如果此值為零,則沒有應用程式工作執行緒耗盡其容量。
- 因總大小而等待
協調器執行緒因已達到
replica_pending_jobs_size_max
限制而必須等待排程事件的次數。此系統變數設定可供應用程式工作執行緒佇列(保存尚未套用的事件)使用的最大記憶體量(以位元組為單位)。如果異常大型的事件超過此大小,則會保留交易,直到所有應用程式工作執行緒都具有空的佇列,然後才會處理。所有後續交易都會被保留,直到大型交易完成。- 在時鐘衝突時等待
協調器執行緒必須等待以排程事件的奈秒數,原因為該事件所依賴的交易尚未提交。如果
replica_parallel_type
設定為DATABASE
(而不是LOGICAL_CLOCK
),則此值永遠為零。- 當工作執行緒被佔用時的等待次數 (計數)
協調器執行緒短暫休眠的次數,這可能發生在兩種情況下。第一種情況是協調器執行緒指派事件時,發現套用程式工作執行緒的佇列已填滿,超出最大佇列長度的 10% 低水位線,在這種情況下,它會休眠最多 1 毫秒。第二種情況是,如果
replica_parallel_type
設定為LOGICAL_CLOCK
,且協調器執行緒需要將交易的第一個事件指派給套用程式工作執行緒的佇列,它只會將事件指派給佇列為空的工作執行緒,因此如果沒有佇列為空,協調器執行緒會休眠直到有佇列變為空。- 當工作執行緒被佔用時的等待次數
協調器執行緒在等待空的套用程式工作執行緒佇列時所休眠的奈秒數 (也就是上述第二種情況,其中
replica_parallel_type
設定為LOGICAL_CLOCK
,並且需要指派交易的第一個事件)。