在多线程副本上,性能模式表 replication_applier_status_by_coordinator
和 replication_applier_status_by_worker
显示副本的协调器线程和应用程序工作线程的状态信息。对于具有多个通道的副本,每个通道的线程都被标识。
多线程副本的协调器线程还会在错误日志中定期打印统计信息,如果 verbosity 设置为显示信息性消息。统计信息的打印频率取决于协调器线程分配给应用程序工作线程的事件数量,最大频率为每 120 秒一次。
- Seconds elapsed
-
自上次打印错误日志以来的时间差(以秒为单位)。
- Events assigned
-
自协调器线程启动以来,协调器线程将事件排队到所有应用程序工作线程的总数。
- Worker queues filled over overrun level
-
当前排队到任何应用程序工作线程的事件数超过溢出级别(16384 事件的 90%)。如果该值为零,则没有应用程序工作线程达到其容量上限。
- Waited due to worker queue full
-
协调器线程等待调度事件的次数,因为应用程序工作线程的队列已满。如果该值为零,则没有应用程序工作线程耗尽其容量。
- Waited due to the total size
-
协调器线程等待调度事件的次数,因为
replica_pending_jobs_size_max
限制已达到。该系统变量设置了应用程序工作线程队列中未应用事件的最大内存量(以字节为单位)。如果一个非常大的事件超过了这个大小,则事务将被持有,直到所有应用程序工作线程的队列为空,然后处理。所有后续事务将被持有,直到大事务完成。 - Waited at clock conflicts
-
协调器线程等待调度事件的时间(以纳秒为单位),因为事务尚未提交。如果
replica_parallel_type
设置为DATABASE
(而不是LOGICAL_CLOCK
),则该值始终为零。 - Waited (count) when workers occupied
-
协调器线程短暂休眠的次数,可能出现在两个情况下。第一个情况是协调器线程分配事件时发现应用程序工作线程的队列已满溢出级别(即 10% 的最大队列长度),在这种情况下,它将休眠最多 1 毫秒。第二个情况是
replica_parallel_type
设置为LOGICAL_CLOCK
,协调器线程需要将事务的第一个事件分配给应用程序工作线程的队列,只有在空队列时才这样做,如果没有空队列,协调器线程将休眠直到某个队列变为空。 - Waited when workers occupied
-
协调器线程等待空应用程序工作线程队列的时间(以纳秒为单位),即在第二种情况下,
replica_parallel_type
设置为LOGICAL_CLOCK
,并且需要将事务的第一个事件分配给应用程序工作线程的队列。