Percona XtraDB Cluster Perfomance Schema Instrumentation

为了改进监控,Percona XtraDB集群实施了一个基础架构,将Galera仪器(mutexes, cond-variables, files, threads)作为其一部分添加到了PERFOMANCE_SCHEMA。尽管mutexes和wsrep状态变量已经是PERFORMANCE_SCHEMA线程的一部分,但线程不是。来自Galera库的mutexes,状态变量,线程和文件也不是PERFORMANCE_SCHEMA的一部分。

一、查看可用的仪器

通过运行可以看到可用仪器的完整列表:

mysql> SELECT * FROM performance_schema.setup_instruments WHERE name LIKE '%galera%' OR name LIKE '%wsrep%';
+----------------------------------------------------------+---------+-------+
| NAME                                                    | ENABLED | TIMED |
+----------------------------------------------------------+---------+-------+
| wait/synch/mutex/sql/LOCK_wsrep_ready                    | NO      | NO    |
| wait/synch/mutex/sql/LOCK_wsrep_sst                      | NO      | NO    |
| wait/synch/cond/galera/COND_galera_recvbuf              | NO      | NO    |
| wait/io/file/galera/FILE_galera_recordset                | YES    | YES  |
| wait/io/file/galera/FILE_galera_ringbuffer              | YES    | YES  |
|  .......................................
| stage/wsrep/wsrep: applier idle                          | NO      | NO    |
| stage/wsrep/wsrep: in rollback thread                    | NO      | NO    |
| stage/wsrep/wsrep: aborter idle                          | NO      | NO    |
| stage/wsrep/wsrep: aborter active                        | NO      | NO    |
| memory/sql/wsrep                                        | NO      | NO    |
+----------------------------------------------------------+---------+-------+
81 rows in set (0.07 sec)

下面列车一些最重要的:

  Galera所做的两个主要行为是REPLICATION和ROLLBACK。与此相关的互斥锁,状态变量和线程是PERFORMANCE_SCHEMA其中的一部分。

  Galera内部使用监视机制来强制事件的排序。这些监视控制事件运用并主要负责不同活动之间的等待。所有这些监视器互斥和条件变量都作为此实现的一部分进行了介绍。

  还有很多与接收包和服务信息有关的其他杂项行动。它们所需的互斥锁和状态变量现在也可以看到。管理接收和服务的线程也正在被测试。

此功能已经公开了所有重要的互斥体,即导致锁/线程/文件的状态变量,作为此过程的一部分。

除了公开文件外,它还跟踪写入/读取字节,如文件的状态信息。当Galera使用mmap时,这些数据不会公开给Galera文件。

此外,还有一些线程是短暂的,只有在需要时才会创建,特别是针对SST / IST目的。他们也被追踪,但PERFORMANCE_SCHEMA只有在创建时才会进入表格。

服务器更新到跟踪运行线程状态的Galera特定函数的Stage Info在PerformanceSchema中也是可见的。

二、未披露的

Galera在某些情况下使用客户数据结构(如STL结构)。用于保护这些结构的突变体,不是主线Galera逻辑的一部分,也不是大图中的一部分,也不被跟踪。对于特定于gcomm库的线程也是如此。

Galera在每个监视器内维护一个进程向量,用于其内部图的创建。该处理向量的大小为65K,每个监视器有两个这样的向量。即128 K*3=384 K条件变量。这些信息不会被跟踪以避免占用PerformanceSCHEMA限制和次要的主要关键信息。

三、参考

https://www.percona.com/doc/percona-xtradb-cluster/LATEST/manual/performance_schema_instrumentation.html

上一篇:CentOS 7下安装redis及自启动配置


下一篇:Percona XtraDB Cluster多主复制(PXC 5.7)