在多執行緒複本上,效能結構描述表格 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
,並且需要指派交易的第一個事件)。