PXC——状态参数与变量参数

“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,表示在执行过程中,是全程强势有序的,并且在使用到被修改的表时,都会将其杀死,这是默认的情况,并且是最简单的方法,也推荐使用这种方法;

原文地址:http://blog.51cto.com/fengfeng688/2151062

时间: 2024-10-06 00:53:35

PXC——状态参数与变量参数的相关文章

?Swift语言中为外部参数设置默认值,可变参数,常量参数,变量参数,输入输出参数

引用自这里:Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 目录[-] 7.4.4  为外部参数设置默认值 7.4.5  可变参数 7.4.6  常量参数和变量参数 7.4.7  输入-输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1.2语言快速入门v2.0. [示例7-11]以下的代码就为外部参数toString.withJoiner设置了默认的参数"Swift"和&qu

Swift中什么时候用变量参数、inout参数

首先要明白一般的常量参数:函数中的参数在函数内不能进行运算的参数是常数参数.苹果声明一个函数,对一个参数的默认行为就是这个参数是不允许修改的.默认参数是一个let值的参数. 变量参数:当传入参数时候,在函数体内可以修改这个传入的参数时,需要变量参数,变量参数需要在声明函数时参数处加上var,这也是其他语言参数的一般类型. inout参数:在函数内对参数进行修改之后,在函数外部参数如果也发生了变化,则这个参数为inout参数 //使用inout传入参数的值是切切实实会改变的 func swapTw

?Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1.2语言快速入门v2.0. [示例7-11]以下的代码就为外部参数toString.withJoiner设置了默认的参数"Swift"和"---".代码如下: import Foundation func join(string s1: String, toString

递归中对于参数和变量的理解

 对于递归函数:参数,局部变量的生存期和调用时间问题 ================================================================================================== #include <stdio.h> int binary_to_ascii( unsigned int value) { unsigned int quotient; quotient = value / 10;              

Nginx内置变量以及日志格式变量参数详解

Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为空字符串 $uri #请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如"/foo/bar.html". $d

Shell 环境变量 &amp; 参数变量

环境变量 $HOME 当前用户的家目录 $PATH 以冒号分隔的用来搜索命令的目录列表 $PS1 命令提示符,通常是$字符,但在bash中,可以使用一些更复杂的值.例如,字符串[\[email protected]\h \w]$就是一个流行的默认值,它给出用户名.机器名和当前目录名,当然也包括一个$提示符. $SP2 二级提示符,用来提示后续的输入,通常是>字符 $IFS 输入域提示符.当shell读取输入时,它给出用来分隔单词的一组字符,它们通常时空格.制表符和换行符 $0 shell脚本的名

RGB颜色中的参数是变量的时候,为什么要加上两个+号在左右?

<script> function draw(){ var c=document.getElementById("mycanvas"); var cxt=c.getContext("2d"); for(var i=0;i<12;i++){ for(var j=0;j<24;j++){ cxt.fillStyle="rgb(240,"+Math.floor(255-11.5*i)+","+Math.flo

存储过程中使用参数和变量作为查询条件对性能的影响?

今日匆忙中写了2各存储过程,查询的表,查询的结构,返回的值基本一样,就是对参数的使用有点不同. 晚上到家想着优化下,看看能不能合并了.在几次重写后,拿着几个版本查看执行计划时,发现个以前没注意的问题. 第一个SP传入的2个时间参数直接用于里面的查询条件. 第二个SP传入的2个时间参数,在SP内又定义了2个时间变量,将参数通过简单计算后Set给了2个变量,然后在查询中使用这2个变量作为条件. 这2个SP,在执行开销上相差数倍. 在外面套一层SP,把时间算好了再当参数传给第二个SP,修改SP直接使用

iReport默认参数和变量的含义解析【转】

iReport默认参数和变量的含义解析[转] http://uule.iteye.com/blog/775338 参考:http://blog.csdn.net/terryzero/article/details/4005858 $V{PAGE_NUMBER} 代表当前页数(可以是页码也可以是页数,通过TextField的计算时间的不同值来设置) $V{PAGE_COUNT} 当前页面中记录的数目 对于$V{PAGE_NUMBER}:当evaluationTime="Now"时,即是计