加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

向日葵技术总监:国内首例谈MySQL InnoDB memcached plugin实践

发布时间:2017-09-06 04:27:14 所属栏目:业界 来源:互联网
导读:张小峰 Oray技能总监 简介 张小峰专注于高机能收集处事架构,15年C++收集应用开拓和团队打点履历;在DNS架构、C++收集通讯技能、各操纵体系API交互、图像处理赏罚、加密算法等规模都有着深入的研究;在Oray技能团队中认真全部产物的收集处事及图像底层架构计划

在mysql的设置文件my.cnf中凡是必要配置以下参数(留意在启动插件后设置,不然mysqld启动报错),首要是设置分派给memcached 的内存巨细以及开启写binlog,假如必要指定其他端口,如11212 在loose-daemon_memcached_option参数添加 ' -p11212'

而daemon_memcached_r_batch_size、daemon_memcached_w_batch_size 默以为1,这里也提议配置为1:

[mysqld]

loose-daemon_memcached_option='-m 15360'

daemon_memcached_enable_binlog= 1

innodb_api_enable_binlog=1

daemon_memcached_r_batch_size = 1

daemon_memcached_w_batch_size = 1

MySQL memcached plugin 特点:

1.数据直接读写哀求innodb存储引擎,不必要颠末SQL层,不必要举办理会编译。

2.由MySQL buffer pool 打点内存缓存数据。

3.可以把数据存入多个表,可举办多列数据归并为一个value。

4.可以通过SQL对数据举办查询、说明、维护。(在逾期时刻字段添加索引,通过mysql job举办逾期数据删除)

5.可以操作MySQL机动的主从架构。

机能测试比拟:

我们回收4核举办测试比拟,MySQL memcached plugin 与 ttserver (hash模式)机能相等,QPS可以到达7万/秒。比 ttserver (btree模式)跨越3倍以上。

memaslap的测试存在一些缺陷,这里仅供大抵参考:[1]

向日葵技能总监:海内首例谈MySQL InnoDB memcached plugin实践

现实上,在收集耽误上,QPS机能将大打折扣,以是要将应用陈设在同个内网以低就逮络耽误瓶颈,轻松应对天天上亿次的QPS哀求,在靠近1万/s的QPS并发会见下仍旧示意不变。

以下是个中一个MySQL Memcahced 运行环境:

向日葵技能总监:海内首例谈MySQL InnoDB memcached plugin实践

在我们一个很NB的DBA的计划和操控下,新架构上线照旧较量顺遂的:

向日葵技能总监:海内首例谈MySQL InnoDB memcached plugin实践

图中的magent:

在这次架构优化中,我们在应用和MySQL memcached中间加了一层magent,这对象各人百度下处处都有先容,但原版着实是有不少bug的,好比buffer巨细题目;加上这对象的甜头:

1、通过对magent的改革,实现HA,当ma后端cache某一台down掉后ma可以自动切换;体系打点员晚上终于可以定心的睡觉了。

2、MySQL memcached plugin 不支持multi get/set (在将来的版本中会支持)。通过magent办理。

3、因为mysql memcached plugin 存在一些bug,5.7.18做了一些修复,但不足完美。借助magent便于节制和维护。

此架构上风:

扩展性强。慢慢晋升应对高并发,采纳多主架构,共同magent实现高可用。

我们做的优化:

MySQL 5.7.17 前的版本,不提议配置 daemon_memcached_r_batch_size 大于1,轻易遭遇 bug 导致 MySQL Crashed。同时提议innodb_api_bk_commit_interval配置为稍大一点的值。默以为5。存在get会话的环境下,对 daemon_memcached 插件举办重启,也会导致MySQL Crashed,重启插件时要确保没有其他会话。

榨取flush_all权限操纵:

 update cache_policies set flush_policy='disabled';

尾声

着实上面说了那么多细节抑或还不足细节的对象,都是环绕着缓存架构的优化。在这么多年从事软硬开拓与架构计划的现实事变中,我深刻的领会到架构的重要性,不管多NB的代码和算法,多NB的硬件,体系架构欠好的话你的运行功效一样糟糕。这里的架构不只仅包括处事器层面以及体系运维上的,架构无处不在,从软件架构到硬件架构,从网站架构到数据库架构,从通讯架构随处事整体架构,包罗本文提到的缓存架构,乃至细化到C++开拓层的class封装与彼此挪用,都有着架构及其优化的存在。做任何一件陈设与现实的开拓前,我们都要有做好架构这个隐藏意识,去思量一个好的架构再下手构建,虽然我们都不行停止的会踩到坑,不关键怕,一连改培育好。

正是这样的立场下,我们又相继推出无网远控的硬件“向日葵控控”这样创新性的产物。有了这一起走来的履历,不管产物从软件延长硬件,我们也有本身的一套优化方案,有机遇我们继承分享。

向日葵技能总监:海内首例谈MySQL InnoDB memcached plugin实践

[1]添加

假如想相识主播的最新直播动态,还等什么,赶忙扫描下面的二维码、可能点击下载链接安装神兽直播,一键存眷全网主播!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读