星空网 > 软件开发 > 数据库

缓解MySQL写入压力和主从延迟的尝试

最近单位需要用MySQL存放大量的日志数据.
写入压力很大,并且有很大的主从延迟.

具体环境如下
MySQL 5.6.14
服务器(单CPU,6核心,12线程 32G内存)
服务器硬盘(共33T,Raid5)

第一个尝试,分散IO
一般我们使用/dbdata挂载点存放数据文件
/data挂载点存放日志文件(redo log file,binlog,relay log等)
这样的好处是将随机IO和顺序IO分开,不形成争用.
缓解MySQL写入压力和主从延迟的尝试
缺点是/data挂载点的IO使用率一般较低.
缓解MySQL写入压力和主从延迟的尝试
当然,这种情况在一般用途的数据库并无大碍.
但是在Insert密集的数据库,数据文件所在的物理设备使用率会一直保持在100%.而日志文件所在的物理设备使用率一般也就是5%左右,甚至更低.

这时,也许可以考虑将一部分表的数据文件移动到日志文件所在的物理设备,以平衡IO资源使用.
缓解MySQL写入压力和主从延迟的尝试
MySQL的datadir在/dbdata挂载点,
police_im_user_mac数据库通过软链接,实际指向/data的挂载点.
这样,会将一部分的随机IO分散到/data挂载点,减轻/dbdata挂载点的压力,并且减小了CPU的等待
缓解MySQL写入压力和主从延迟的尝试

第二个尝试,一个库一个表
因为MySQL 5.6的多线程复制是基于数据库的.
而我们每个表的写入压力都很大,所以修改了结构,每个数据库只有一个表.然后启动多线程复制(实际上就是多个SQL线程),并且设置传输压缩

slave_compressed_protocol=on (Master,Slave都需要配置)
slave_parallel_workers=10

第三个尝试,修改参数
innodb_flush_log_at_trx_commit = 0
innodb_support_xa=0
sync_binlog=0
增加innodb_buffer_pool_size
将innodb_max_dirty_pages_pct设置的更大
将redolog file size设置的更大


经过这些修改,写入压力和主从延迟有了很大的缓解.
但是启动slave_parallel_workers,一旦出现SQL线程异常导致的复制中断,恢复之后,可能会出现1062号错误
缓解MySQL写入压力和主从延迟的尝试
这是因为多SQL线程的线程同步机制可能有问题,一旦复制中断,现象上看,等同于Slave异常关机.

当然,处理方法也是一样的

java企业级通用权限安全框架源码 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

 

【java框架源码下载】

 




原标题:缓解MySQL写入压力和主从延迟的尝试

关键词:MYSQL

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

商标CS详细了解商标注册流程:https://www.kjdsnews.com/a/1388983.html
商城注册商标抢占市场先机的重要步骤:https://www.kjdsnews.com/a/1388984.html
商城商标注册的重要性及流程:https://www.kjdsnews.com/a/1388985.html
商城商标注册查询知晓你的商标状态:https://www.kjdsnews.com/a/1388986.html
哪里注册商标更加靠谱?:https://www.kjdsnews.com/a/1388987.html
哪里是最佳的商标注册地点?:https://www.kjdsnews.com/a/1388988.html
青岛崂山旅游攻略自驾游(详细介绍崂山自驾游路线和景点):https://www.vstour.cn/a/404242.html
海南旅游景点的路线 海南旅游景点大全攻略自驾游:https://www.vstour.cn/a/404243.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流