mycat连mysql线程数配置_Mycat 配置文件server.xml

该标签内嵌套的所有 property 标签都与系统配置有关。

charset 属性:

该属性用于字符集设置。

utf8

defaultSqlParser 属性:

该属性用来指定默认的解析器。目前的可用的取值有:druidparser 和 fdbparser。使用的时候可以选择其中的一种,目前一般都使用 druidparser。1.3 解析器默认为 fdbparser,1.4 默认为 druidparser,1.4 以后 fdbparser 作废。

processors 属性:

该属性主要用于指定系统可用的线程数,默认值为机器 CPU 核心线程数。主要影响 processorBufferPool、 processorBufferLocalPercent、 processorExecutor 属性。NIOProcessor 的个数也是由这个属性定义的,所以调优的时候可以适当的调高这个属性。

processorBufferChunk 属性:

该属性指定每次分配 Socket Direct Buffer 的大小,默认是 4096 个字节。这个属性也影响 buffer pool 的长度。如果一次性获取的数过大 buffer 不够用会经常出现警告,此时可以适当调大。

processorBufferPool 属性:

该属性指定 bufferPool 计算比例值。由于每次执行 NIO 读、写操作都需要使用到 buffer,系统初始化的时候会建立一定长度的 buffer 池来加快读、写的效率,减少建立 buffer 的时间。Mycat 中有两个主要的 buffer 池:

BufferPool:BufferPool 由 ThreadLocalPool 组合而成,每次从 BufferPool 中获取 buffer 都会优先获取ThreadLocalPool 中的 buffer,未命中之后才会去获取 BufferPool 中的 buffer。也就是说 ThreadLocalPool 是作为 BufferPool 的二级缓存,每个线程内部自己使用的。BufferPool 上的 buffer 则是每个 NIOProcessor 都共享的。

这个属性的默认值为: 默认bufferChunkSize(4096) * processors属性 * 1000

BufferPool 的总长度 = bufferPool / bufferChunk。

若 bufferPool 不是 bufferChunk 的整数倍,则总长度为前面计算得出的商 + 1

假设系统线程数为 4,其他都为属性的默认值,则:

bufferPool = 4096 * 4 * 1000

BufferPool 的总长度 : 4000 = 16384000 / 4096

format,png

processorBufferLocalPercent 属性:

前面提到了 ThreadLocalPool。这个属性就是用来控制分配这个 pool 的大小用的,这个属性默认值为 100。

线程缓存百分比 = bufferLocalPercent / processors 属性。

例如,系统可以同时运行 4 个线程,使用默认值,则根据公式每个线程的百分比为 25。最后根据这个百分比来计算出具体的 ThreadLocalPool 的长度公式如下:

ThreadLocalPool 的长度 = 线程缓存百分比 * BufferPool 长度 / 100

假设 BufferPool 的长度为 4000,其他保持默认值。

那么最后每个线程建立上的 ThreadLocalPool 的长度为: 1000 = 25 * 4000 / 100

processorExecutor 属性:

这个属性主要用于指定 NIOProcessor 上共享的 businessExecutor 固定线程池大小。 mycat 在需要处理一些异步逻辑的时候会把任务提交到这个线程池中。新版本中这个连接池的使用频率不是很大了,可以设置一个较小的值。

sequnceHandlerType 属性:

指定使用 Mycat 全局序列的类型。 0 为本地文件方式,1 为数据库方式,2 为时间戳序列方式,3 为分布式ZK ID 生成器,4 为 zk 递增 id 生成。

TCP 连接相关属性:

StandardSocketOptions.SO_RCVBUF

StandardSocketOptions.SO_SNDBUF

StandardSocketOptions.TCP_NODELAY

以上这三个属性,分别由:

frontSocketSoRcvbuf 默认值: 1024 * 1024

frontSocketSoSndbuf 默认值: 4 * 1024 * 1024

frontSocketNoDelay 默认值: 1

backSocketSoRcvbuf 默认值: 4 * 1024 * 1024

backSocketSoSndbuf 默认值: 1024 * 1024

backSocketNoDelay 默认值: 1

各自设置前后端 TCP 连接参数。 Mycat 在每次建立前、后端连接的时候都会使用这些参数初始化连接。可以按系统要求适当的调整这些 buffer 的大小。

其他涉及属性:

1.1、心跳属性

mycat 中有几个周期性的任务来异步的处理一些我需要的工作。这些属性就在系统调优的过程中也是比不可少的。

processorCheckPeriod :

清理 NIOProcessor 上前后端空闲、超时和关闭连接的间隔时间。默认是 1 秒,单位毫秒。

dataNodeIdleCheckPeriod :

对后端连接进行空闲、超时检查的时间间隔,默认是 300 秒,单位毫秒。

dataNodeHeartbeatPeriod :

对后端所有读、写库发起心跳的间隔时间,默认是 10 秒,单位毫秒。

1.2、服务相关属性

这里介绍一个与服务相关的属性,主要会影响外部系统对 myact 的感知。

bindIp :

mycat 服务监听的 IP 地址,默认值为 0.0.0.0。

serverPort :

定义 mycat 的使用端口,默认值为 8066。

managerPort :

定义 mycat 的管理端口,默认值为 9066。

1.3、Mysql 连接相关属性

初始化 mysql 前后端连接所涉及到的一些属性:

packetHeaderSize :

指定 Mysql 协议中的报文头长度。默认 4。

maxPacketSize :

指定 Mysql 协议可以携带的数据最大长度。默认 16M。

idleTimeout :

指定连接的空闲超时时间。某连接在发起空闲检查下,发现距离上次使用超过了空闲时间,那么这个连接会被回收,就是被直接的关闭掉。默认 30 分钟,单位毫秒。

charset :

连接的初始化字符集。默认为 utf8。

txIsolation :

前端连接的初始化事务隔离级别,只在初始化的时候使用,后续会根据客户端传递过来的属性对后端数据库连接进行同步。默认为 REPEATED_READ,设置值为数字默认 3。

READ_UNCOMMITTED = 1;

READ_COMMITTED = 2;

REPEATED_READ = 3;

SERIALIZABLE = 4;

sqlExecuteTimeout :

SQL 执行超时的时间,Mycat 会检查连接上最后一次执行 SQL 的时间,若超过这个时间则会直接关闭这连接。默认时间为 300 秒,单位秒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值