MySQL数据库集群之PXC方案---状态参数说明

PXC集群信息可以分为队列信息、复制信息、流控信息、事务信息、状态信息。这些信息可以通过sql查询到。每种信息的详细意义可以在官网查看。

1. 复制信息

show status like '%wsrep%';
状态 描述
wsrep_replicated 被其他节点复制的次数
wsrep_replicated_bytes 发送到其他节点的写入集的总大小(以字节为单位)。
wsrep_received 从其他节点处收到的写入请求书
wsrep_received_bytes 从其他节点接收的写入集的总大小(以字节为单位)。
wsrep_local_commits 节点上的写入集数目

参数很多,可以上官网查询对应信息,在这里只举例说明几个重要的信息。

2. 队列信息

队列是一种很好的缓存机制,如果pxc正在满负荷工作,没有线程去执行数据的同步,同步请求会缓存到队列中,然后空闲线程从队列中取出任务,执行同步的请求,有了队列pxc就能用少量的线程应对瞬时大量的同步请求。

状态 描述
wsrep_local_send_queue 发送队列的长度(瞬时同步的请求数量)
wsrep_local_send_queue_max 发送队列的最大长度
wsrep_local_send_queue_min 发送队列的最小长度
wsrep_local_send_queue_avg 发送队列的平均长度
wsrep_local_recv_queue 接收队列的长度
wsrep_local_recv_queue_max 接收队列的最大长度
wsrep_local_recv_queue_min 接收队列的最小长度
wsrep_local_recv_queue_avg 接收队列的平均长度

当发送队列的平均长度(wsrep_local_send_queue_avg)值很大,发送队列的长度(wsrep_local_send_queue)也很大的时候,说明pxc集群同步数据的速度已经很慢了,队列里边积压了大量的同步请求,这个时候就得检查一下网速是不是正常,或者同步的线程数量是不是太少。

当接收队列的平均长度(wsrep_local_recv_queue_avg)值很大,接收队列的长度(wsrep_local_recv_queue)也很大的时候,这说明本地没有足够的线程去执行持久化的操作,增加线程就可以解决这个问题。

3. 流量控制信息(流控信息)

流量控制就是pxc集群在同步速度较慢的情况下,为了避免同步速度跟不上写入速度而推出的一种限速机制,就是限制数据的写入,直到同步队列的长度变小,同步速度变快为止,才会解除流量控制。流量控制的后果很严重,而且一个很小的操作就会引发流量控制。

状态 说明
wsrep_flow_control_paused_ns 流控暂停状态下花费的总时间(纳秒)
wsrep_flow_control_paused 流量控制暂停时间的占比(0~1)
wsrep_flow_control_sent 发送的流控暂停事件的数量
wsrep_flow_control_recv 接收的流控暂停事件的数量
wsrep_flow_control_interval 流量控制的下限和上限。上限是队列中允许的最大请求书。如果队列达到上限,则拒绝新的请求。当处理现有请求时,队列会减少,一旦到达下限,将再次允许新的请求
wsrep_flow_control_status 流量控制状态 OFF:关闭 0N: 开启

流控的主要原因节点之间同步的速度慢,队列积压了大量的请求,这才是流控的主要原因。
流控解决办法

  1. 改善网速,提高带宽,更换交换机,千兆网卡更换成万兆网卡
  2. 增加线程,线程多了执行的速度也就快了。队列里边就不会积压大量的请求
  3. 提升硬件性能,比如升级CPU,内存以及更换光纤硬盘等等都可以提高写入速度

第一项和第三项属于更换硬件的方法,主要说一下第二个方法增加线程数提升同步速度。在pxc的配置文件加上wsrep_slave_threads参数。代表的是本地执行队列的线程数量,一般这个数是CPU线程数的1-1.5倍。比如服务器CPU是8核16线程的,这里就可以写16-24就可以。保存之后重启服务

wsrep_slave_threads=16

4. 节点与集群的状态信息

状态 说明
wsrep_local_state_comment 节点状态 Joining 节点正在加入到pxc集群中、Joined 节点已经加入到pxc集群中、Synced 节点可以提供读写服务,算正常的状态、Donar/Desynced 如果有节点跟当前节点同步,则进入此状态,不能提供读写服务
wsrep_cluster_status 集群状态(Primary 正常状态、Non-Primary 出现了脑裂请求、Disconnected 不能提供服务,已经出现宕机了)
wsrep_connected 节点是否连接到集群
wsrep_ready 集群是否正常工作
wsrep_cluster_size 节点数量
wsrep_desync_count 延时节点数量
wsrep_incoming_addresses 集群节点IP地址

5. 事务相关信息

状态 说明
wsrep_cert_deps_distance 事务执行并发数
wsrep_apply_oooe 接收队列中事务的占比
wsrep_apply_oool 接收队列中事务乱序执行的顺序
wsrep_apply_window 接收队列中事务的平均数量
wsrep_commit_oooe 发送队列中事务的占比
wsrep_commit_oool 无任何意义,不存在本地的乱序提交
wsrep_commit_window 发送队列中事务的平均数量

你可能感兴趣的:(MySQL集群之PXC)