阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

PXC状态参数与变量参数

156次阅读
没有评论

共计 6543 个字符,预计需要花费 17 分钟才能阅读完成。

“galera 参数解析:”

1、状态参数:

–wsrep_last_committed:

表示的是当前节点最新提交的事务号,也是最新 galera GTID 的后半部分,前半部分是参数 wsrep_local_state_uuid 的值,在每次执行提交、DDL 执行完成或 APPLY 之后,都会更新这个值;

–wsrep_replicated:

表示当前节点已经复制过的事务数目。

–wsrep_replicated_bytes:

与参数 wsrep_replicated 相对应,每一个事务的大小不同,这个参数表示已经复制的 wsrep_replicated 个事务总字节大小(key 和 data)的总和;

–wsrep_repl_keys:

当前节点已经复制的 wsrep_replicated 个事务对应的总的 key 的数目,一个事务可以包含多个 key;

–wsrep_repl_keys_bytes:

与参数 wsrep_repl_keys 对应,所有发送的 key 的大小加起来的值,代表总的字节大小;

–wsrep_repl_data_bytes:

与参数 wsrep_repl_keys_bytes 对应,与上面几个参数的关系时:wsrep_replicated_bytes=wsrep_repl_keys_bytes+wsrep_repl_data_bytes+wsrep_replicated*64;

–wsrep_received:

与参数 wsrep_replicated 对应,表示当前节点已经收到的从写节点复制过的事务数,单位为事务个数;

–wsrep_received_bytes:

对参数 wsrep_received 对应,表示收到的所有事务包含的 key 及 DATA 的字节数

–wsrep_local_commits:

表示当前节点本机提交的事务个数

–wsrep_local_cert_failures

表示本地节点验证失败的 次数

–wsrep_local_replays:

表示本地做 replay 的次数,这个参数值越大,表示本地出错频率越高

–wsrep_local_send_queue:

表示当前节点在等待复制的事务个数,就是发送队列的长度;如果该参数值越大,说明本地压力或网络性能有问题,可以作为监控指标;

–wsrep_local_send_queue_max:

当前节点历史上等待队列最大的事务数目;

–wsrep_local_send_queue_min:

当前节点历史上等待列最小的事务数目,一般就是 0

–wsrep_local_send_queue_avg:

当前节点自从上次 flush 参数之后,等待队列长度的平均值。其值越大则表示压力越大,但是这个参数中没有包括 flow_control 的等待;

–wsrep_local_recv_queue:

表示当前节点从其他节点接受的队列中事务个数,这个队列与 flow  control 有关,如果这个值达到 gcs.fc_limit 值的话,就会发生 flow control,本节点会向整个集群发送 flow control 小心,整个集群会被阻塞,二等地 wsrep_local_recv_queue 的值小于 gcs.fc_limit*gcs.fc_factor 之后,flow control 解除。

–wsrep_local_recv_queue_mas:

表示当前节点历史接收队列中事务的最大个数

–wsrep_local_recv_queue_min:

表示当期节点历史接收队列中事务的最小个数

–wsrep_local_recv_queue_avg:

表示当前节点历史接收队列中事务的平均个数,如果某个节点的平均值都比其他的大,则可以考虑这个机器的硬件性能是不太好,或压力造成的;

–wsrep_local_cached_downto:

表示当前节点 cache 中的最小 GTID 值,可以决定集群中其他节点在启动时,是需要做 IST 还是 SST。

–wsrep_flow_control_paused_ns:

表示由于 flow control 消息引起的集群阻塞时间长度,单位是纳秒。这个参数不能通过 flush status 来重置。它的值是递增累计的;

–wsrep_flow_control_paused:

表示从上次 flush status 之后开始,新产生的 FC 暂停时间与 从 flush 开始到 show status like “wsrep%” 命令执行的这段时间的比值,可以理解为一个暂停时间。这个值越接近 0,说明系统越正常,如果差不多为 1,则说明当前系统基本不能做复制了;

–wsrep_flow_control_sent:

当一个节点的复制任务队列长度超过 fc_limit 时,这个节点就会给整个集群发送 FC 消息,这个参数表示当前节点向整个集群发送 FC 消息的次数,这个值越大表示这个节点做的越慢。如果这个值突增了,则说明这个节点有可能出现了问题,或这个节点负载增大了,导致 apply 写集变慢;

–wsrep_flow_control_recv:

表示当前节点收到 FC 消息的次数。当这个参数突增时,就需要查看是哪个节点的 sent 值突增了,那么这个 节点就有可能存在性能问题;

–wsrep_cert_deps_distance:

表示一个事务的 GTID2 和它所依赖的事务的 GTID1 之间差值的总和,与这段时间内所做的总的验证通过的事务(n_certified)个数的比值。

–wsrep_commit_oooe:

这个参数的值永远是 0,如果出现别的值,请看官网资料

–wsrep_commit_oool:

这个参数的值永远是 0,如果出现别的值,请看官网资料

–wsrep_commit_window:

这个参数与上面的参数还是相关的,在每次提交时,都会检查 oooe;如果这个值越大,这说明真个提交过程的顺序越乱,写入事务压力不太平衡;如果越接近 1,则说明写入越有秩序,事务相对比较均匀;

–wsrep_apply_oooe:

这个参数和上面 oooe 的道理是一样的,如果这个值很接近 0,则说明这个系统的执行基本是串行的;

–wsrep_apply_oool:

与参数 wsrep_apply_oooe 对应,这个参数标的含义是,如果值越大,则表示并行执行时乱序的现象越多;如果值越小,则说明基本是顺序执行的;

–wsrep_apply_window:

这个参数值与上面的对应,这个值越大,表示并行 apply 事务间的 GTID 相差越大,这个节点的活动也就越频繁;

–wsrep_local_state:

表示当前节点的状态,(有 4 个值:1:表示正在请求加入集群,速度很快一般看不到这个状态;2:表示正在同步数据;3:表示当前节点已经加入集群;4:表示当前节点与整个集群是完全相同的)

–wsrep_local_state_comment:

这个参数与上面参数的 4 个状态值一一对应的,是对上面节点值的一个描述;

–wsrep_cert_index_size:

表示当前节点的验证队列中,总共有多少个 key;

–wsrep_causal_reads:

表示的是处理这种写集等待的次数,不过这个参数已经不用了

–wsrep_cert_interval:

表示的是,所有事务的 GTID 值与它们各自可以看到的最新提交事务的 GTID 值之间差值的总和,与这段时间内所做的被验证通过事务的总个数的比值;

–wsrep_evs_repl_latency:

表示 GCOMM 在消息传送时的复制延迟,单位是秒;采样时间通过参数 evs.stats_report_period 来控制,默认是 PT1M

–wsrep_incoming_addresses:

表示当前急群众,所有已经加入或正在加入集群的节点信息,格式为:IP: 端口,IP: 端口,可以通过该信息来做监控;

–wsrep_cluster_size:

表示当前集群中节点的个数,与参数 wsrep_incoming_addresses 对应,也可以作为监控项,一般监控条件必须大于或等于 3,如果是 3 的话,则会发生脑裂的问题;

–wsrep_local_bf_aborts:

表示当前节点在运行过程中,由于事务的冲突,导致本地事务被主动取消的事务个数。如果这个值比较大,说明集群的写入冲突比较多,可能需要调整写入的方式,比如切换写节点等;

–wsrep_local_index:

表示当前节点在集群中的编号。在集群中,每个节点都有一个唯一的编号,从 0 开始计数

–wsrep_ready:

一个很重要的监控项,可以知道当前节点的状态是不是可以抚慰,正常情况下为 ON,如果变为 OFF,则可能是发生了脑裂,或者和其他节点之间的网络连不上,又或者是 galera 集群没有正常启动等;一般可以通过命令 set global wsrep_provider_options=’pc.bootstrap=yes’ 来恢复,不过在执行这个命令之后,需要观察整个集群的状态,不然可能会导致这个节点在逻辑上脱离集群。这个命令的作用就是让当前节点变为 primary,如果执行了,则说明确定要使用这个节点来提供服务了;

2、变量参数:

–wsrep_provider_options:

—cert.log_conflicts:

在 galera 中,提交的每一个事务都会做验证,看看是不是有依赖关系,并坚持是不是有冲突等,发现了冲突,就由这个参数来控制是否要将冲突记录下来,从而可以通过日志查出原因或用于做一些其他的工作,日志会被记录到 error_log 文件中;

—gcache.dir:

用来指定 GCache 文件的目录,只有在 gcache.name 参数指定的是相对路径时,这个目录才会起作用,而如果 gcache.name 指定的是绝对路径,则这个参数就被忽略了,如果这个参数没有指定,则会被设置为参数 base_dir 的值;

—gcache.name:

用来指定 GCache 文件的名字,名字中也可以带着路径,包括绝对路径及相对路径;

—gcache.mem_size:不建议使用!官方已经弃用

—gcache.page_size:

这个参数表示的就是新建物理文件的大小,如果一个还是不够用,则会继续新建同样大小的物理文件,而当 GCache 被 purge 之后,物理文件的 GCache 就会被清除,当文件中没有有效的写集内容时,文件也会被删除掉。所以只要物理文件出现,就说明 GCache 不够用了;

—gcache.size:不建议使用!官方已经弃用

—gcs.fc_limit:

这个参数控制的就是接受队列达到多大时,触发 FC

—gcs.fc_factor:

这个参数表示是,接收队列在多大时,FC 会解除。这个参数是一个比例,gcs.fc_limit X gcs.gc_factor 的结果就是 FC 解除时的接收队列长度。如果小于这个长度,则 FC 解除;

—gcs.fc_master_slave:

这个参数与上面两个参数是相关的,如果设置为 yes,表示当前集群的使用方式为主从模式,也就是单点写入的模式,其他节点都是从节点;如果设置为 no 的话,说明是多点写入模式,则 gcs.fc_limit 最终生效的值就会发生变化。

—gcs.sync_donor:

这个参数控制的是,在 state transfer 的过程中,donor 是否要发送 flow control 消息;如果将这个参数设置为 no,表示不产生 flow  control,这样就是一种非阻塞式的 state transfer;

—gmcast.listen_addr:

这个值是用来感知其他节点的加入操作的,而新加入节点在选择 donor 之后会向这个地址发送消息,这就可以建立联系的;

—gmcast.segment:

这个值的设置是用来在选择 donor 时,确定哪个节点具有优先权的,范围是 0 -255,值越大,优先权越高。一般都设置为 0,也就是自动选择 donor;

—ist.recv_addr:

这个地址是用来设置做 IST 时 joiner 的接收地址的,默认情况下,设置为 wsrep_node_address 所指定的地址,端口为单独的接收端口,格式为 IP:PORT

—repl.commit_order:

这个参数控制的是 galera 并发控制的行为,针对的是提交操作。为了使所有节点产生的 binlog 完全一样,建议这个值设置为 3;

—repl.max_ws_size:

这个参数,是用来控制写集复制大小的,单位是字节;

—pc.bootstrap:

这个参数可以用来将当前节点状态为不可服务状态(non-primary components)的节点,变为 primary components 状态的节点;一般讲这个参数的命令设置为:set  global wsrep_provider_options=’pc.bootstrap=yes’;,用于快速处理故障,恢复线上服务;

–wsrep_start_position:

这是参数是 PXC 版本的 MySQLd 新增的一个参数,用来在节点启动时,指定当前节点最新的 GTID 值,或者是指定当前节点开始向集群要增量数据点的位置;

–wsrep_slave_threads:

这个参数,是用来设置 galera cluster 集群中,从节点执行 apply 时用于做并行复制的线程个数。

—wsrep_retry_autocommit:

这个参数是来控制事务执行行为的,如果验证失败,则每个节点应该都是验证失败的,那么每个节点都会失败,从节点在验证失败的情况下,直接忽略写集即可;而主节点是通过参数 wsrep_retry_autocommit 来控制,如果不为 0,则当前事务(自动提交的情况下)会再执行一次,从头到尾重新执行,然后再次发送、验证等;

–wsrep_recover:

这个参数,是用来找到某一个节点(处于 shutdown 状态)最新 GTID 值的,它只需要去 innodb 的 ibddata 的一个固定位置,找到这个 GTID 值,然后将其输入到日志文件中,从而可以了解最新的位置及与集群的差集;

–wsrep_on:

这个参数用来控制当前节点的写入是不是想要复制到其他节点。默认情况下,为了保证集群的一致性,都会将一个节点的写入,复制到其他节点;

–wsrep_max_ws_size:

这个参数,用来控制 galera cluster 在某一个节点写入事务大小,这里指的是 keys 及 DATA 二者加起来的 byte 数目,这是个安全性的参数;

–wsrep_max_ws_rows:

这个参数,用来控制 galera cluster 在某一个节点写入事务所影响的行数。如果超过这个值,则直接抛出异常,是一种安全性的参数;

–wsrep_desync:

在复制延迟的节点上设置这个参数为 on,这样这个节点就会变成了一种异步复制的模式,此时主库可以一直写入,从节点也一直 apply,如果接受任务队列的长度已经超过了 fc.limit 值,则这个从节点也不会发送 flow control 小心,整个集群的写入安然无恙,只是有可能从节点的数据不是最新的了,有一段时间的延迟,如果可以几首,那长期保持这样的状态也没什么不好的;如果延迟问题没有了,那就不会再出现任务堆积的情况了,这是可以再讲这个参数值设置为 OFF,整个集群又保持一致了,就变成了真真正正的 galera cluster;

–wsrep_cluster_address:

这个参数,格式类似:gcomm://192.168.1.1:3306,192.168.1.2:3306, 每一个节点,启动时都会通过设置这个参数来找到集群中的其他节点,指定的节点中可以是已经启动的,也可以是没有启动的,galera 会自动选择并加入。建议在集群变更时尽量保证这个参数的值与集群中实际节点一致,避免在以后变更时出现不必要的麻烦;

–wsrep_OSU_method:

这个参数是用来控制 DDL 执行行为的;默认情况它的值是 TOI,表示在执行过程中,是全程强势有序的,并且在使用到被修改的表时,都会将其杀死,这是默认的情况,并且是最简单的方法,也推荐使用这种方法;

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计6543字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中