收藏 分享(赏)

Mycat性能调优指南详解.doc

上传人:精品资料 文档编号:10968052 上传时间:2020-01-29 格式:DOC 页数:6 大小:509.53KB
下载 相关 举报
Mycat性能调优指南详解.doc_第1页
第1页 / 共6页
Mycat性能调优指南详解.doc_第2页
第2页 / 共6页
Mycat性能调优指南详解.doc_第3页
第3页 / 共6页
Mycat性能调优指南详解.doc_第4页
第4页 / 共6页
Mycat性能调优指南详解.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、MyCAT 性能调优指南详解JVM 调优:内存占用分两部分:java 堆内存+ 直接内存映射(DirectBuffer 占用),建议堆内存适度大小,直接映射内存尽可能大,两种一起占据操作系统的 1/2-2/3 的内存。下面以服务器 16G 内存为例,Mycat 堆内存 4G,直接内存映射 6G,JVM参数如下:-server -Xms4G Xmx4G XX:MaxPermSize=64M -XX:MaxDirectMemorySize=6G用 mycat console 等命令启动 MyCAT 的,JVM 参数都在 confwrapper.con 文件中,下面是一段实例:# Java Addi

2、tional Parameterswrapper.java.additional.5=-XX:MaxDirectMemorySize=2Gwrapper.java.additional.6=-Dcom.sun.management.jmxremote# Initial Java Heap Size (in MB)wrapper.java.initmemory=2048# Maximum Java Heap Size (in MB)wrapper.java.maxmemory=2048操作系统调优:最大文件句柄数量的修改,设置为 5000-1 万,在 Mycat Server 和 Mysql 数

3、据库的机器上都设置。Linux 操作系统对一个进程打开的文件句柄数量的限制(也包含打开的 SOCKET 数量,可影响 MySQL 的并发连接数目).这个值可用 ulimit 命令来修改,但 ulimit 命令修改的数值只对当前登录用户的目前使用环境有效 ,系统重启或者用户退出后就会失效。Mysql 调优:最大连接数设置为 2000mysqld中有参数max_connections = 2000mysql show global status like Max_used_connections;MySQL 服务器过去的最大连接数是 245,没有达到服务器连接数上限 256,应该没有出现 1040

4、 错误,比较理想的设置是:Max_used_connections / max_connections * 100% 85%最大连接数占上限连接数的 85%左右,如果发现比例在 10%以下,MySQL 服务器连接上线就设置得过高了。Mycat 调优:Conf/log4j.xml 中,日志级别调整为至少 info 级别,默认是 debug 级别,用于排查错误,不能用于性能测试和正式生产中。conf/server.xml 中 有如下参数可以调整:1下面这个参数为每个 processor 的线程池大小,建议可以是 16-64,根据系统能力来测试和确定。16System 中以下重要参数也根据情况进行调

5、整processorBufferPool :每个 processor 分配的 Socket Direct Buffer,用于网络通信,每个 processor 上管理的所有连接共享, processorBufferChunk 为 Pool 的最小分配单元,每个 POOL 的容量即为 processorBufferPool/processorBufferChunk,默认前者为 1024 * 1024 * 16=16M,后者为 4096 字节。processorBufferPool 参数的调整,需要观察 show processor 的结果来确定:BU_PERCENT 为已使用的百分比、BU_WA

6、RNS 为 Socket Buffer Pool 不够时,临时创新的新的 BUFFER 的次数,若百分比经常超过 90%并且 BU_WARNS0,则表明 BUFFER 不够,需要增大 processorBufferPool。基本上,连接数越多,并发越高,需要的 POOL 越大,建议 BU_PERCENT 最大在 40-80%之间。conf/schema.xml 中有如下参数可以调整:,checkSQLschema 属性建议设置为 false,要求开发中,不能在 sql 中添加数据库的名称,如 select * from TESTDB.company,这样可以优化 SQL 解析。!最大连接池 m

7、axCon,可以改为 1000 至 2000,同一个 Mysql 实例上的所有datanode 节点的共享本 dataHost 上的所有物理连接 性能测试的时候,建议 minCon=maxCon= mysql max_connections设为 2000 左右。另外,读写分离是否开启,根据环境的配置来决定。缓存优化调整:Show cache 命令展示了缓存的使用情况,经常观察其结果,需要时候进行调整:一般来说:若 CUR 接近 MAX,而 PUT 大于 MAX 很多,则表明 MAX 需要增大,HIT/ACCESS 为缓存命中率,这个值越高越好。重新调整缓存的最大值以后,观测指标都会跟随变化,调

8、整是否有效,主要观察缓存命中率是否在提升,PUT 则下降。目前缓存服务的配置文件为:cacheservice.properties,主要使用的缓存为enhache,enhache.xml 里面设定了 enhance 缓存的全局属性,下面定义了几个缓存:#used for mycat cache service conffactory.encache=org.opencloudb.cache.impl.EnchachePooFactory#key is pool name ,value is type,max size, expire secondspool.SQLRouteCache=enca

9、che,10000,1800pool.ER_SQL2PARENTID=encache,1000,1800layedpool.TableID2DataNodeCache=encache,10000,18000layedpool.TableID2DataNodeCache.TESTDB_ORDERS=50000,18000 SQLRouteCache 为 SQL 解析和路由选择的缓存,这个大小基本相对固定,就是所有 SELECT 语句的数量。 ER_SQL2PARENTID 为 ER 分片时候,根据关联 SQL 查询父表的节点时候用到,没有用到 ER 分片的,这个缓存用不到 TableID2Dat

10、aNodeCache,当某个表的分片字段不是主键时,缓存主键到分片 ID 的关系,这个是二层的缓存,每个表定义一个子缓存,如”TEST_ORDERS”,这里命名为 schema_tableName(tablename 要大写),当有很多的根据主键查询 SQL 时,这个缓存往往需要设置比较大,才能更好的提升性能。Mycat 大数据量查询调优:1.返回结果比较多建议调整 frontWriteQueueSize 在系统许可的情况下加大,默认值*3这个原因是因为返回数据太多这里做了一个改进,就是超过 POOL 以后,仍然创建临时的 BUFFER 供使用,但这些不回收。这样的情况下,需要增加 BUFFER 参数调整 processorBufferPool = 默认值*2 不够的情况下,继续加大。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报