在4月20日由@百度主办、@InfoQ负责策划组织和实施的第37期百度技术沙龙活动上,百度运维部DBA王剑英和人人网数据中心技术副总监刘启荣分享了各自的MySQL优化实践经验,话题涉及“SEQDB——高性能KV型MySQL存储引擎”,以及“MySQL运维感悟”等。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。
\主题一:SEQDB——高性能KV型MySQL存储引擎 (下载讲稿)
\百度运维部DBA王剑英介绍了他们的技术选型过程,他首先列举了三个不同的业务场景,并分析了使用Innodb的解决方案。通过对于Innbodb的测试,他发现Innodb不能很好的满足百度的业务需求,主要是存在如下的问题:
\- 数据量超过内存,IO bound时,依赖IOPS。\
- Innodb不能发挥高性能IO设备的潜能。\
- Innodb不能达到100ms以下99.99%的SLA,达不到业务场景的要求。\
为了完全发挥SSD的潜能,使得QPS\u0026gt;=IOPS、低延迟,并且实现SQL接口、经验的复用,他们提出了如下的两套解决方案:
\经过了一系列的对比,他们选择写一套自己的引擎。同时,为了提高面向业务的性能实现,他们选择在功能上放弃join、range、group by等复杂的查询功能,不做全功能引擎,简化复杂度,只支持基于主键的增删改查。
\百度的Sequentialdb总体构架如下:
\随后他从细节上分享了百度对于SEQDB的设计细节,包括应用的访问模型、索引结构、数据查找、垃圾回收、元信息位图和BLOCK管理等实现。
\最后他分享了其他经验:
\- 对于索引常驻内存安全性,建议使用一主多从和备库的结构,内存的安全性是足够的,索引放在磁盘上访问成本太高;\
- SSD损坏的月概率是0.1%以下,远低于HDD,如果磁盘损坏则无法恢复;\
- 时延敏感型应用,瓶颈会出现在写binlog上,建议调整sync_binlog,将binlog迁移到SSD上;\
- 毫秒级别超时API满足业务的延时需求\
主题二:MySQL运维感悟(下载讲稿)
\人人网数据中心技术副总监刘启荣的介绍这9年来运维MySQL的一些经验和心得:包括MySQL数据从单台演化到一个集群的过程中,所遇到过的一些问题以及所采用的解决方案、在数据库管理过程中认知的转换与变化、在整体性能优化中的各方面的取舍等。
\他根据数据库机器规模的不同阶段分享了具体的实践经验:
\- \
在一个台服务器的阶段:备份
\ 大家一般处于应用的初期,此时性能不是最重要的,要做好备份;\ - \
在两台服务器的阶段:监控
\ 这个阶段一般都会建立主/从的数据库架构,由于宕机造成数据差异、网络问题、从库空间不足或者主库binlog丢失都会导致同步的问题。为了解决这个问题,需要做好监控,开启sql_thread、io_thread,并且延时主从备份。\ - \
在十台服务器的阶段:散列
\ 如果面临频繁写操作,突然宕机的状况将会增多,这个时候需要对数据库做散列。\ - \
在一百台服务器的阶段:Proxy Cluster
\ HA的可靠性将会降低,需要使用proxy cluster、HA、备份、在线的DDL同时使用;\ - \
在一千台服务器的阶段:系统化
\ DBA开始远离业务,部门之间的协作需求也越来越多,然而由于“人永远不靠谱”,需要标准化、自动化、统一化和流程化来保障运营需要。\
百度技术沙龙三周年
\本期是百度技术“三周年”,沙龙的第一期讲师刘洪清、LAMP人社区的潘少宁、往期讲师王集鹄等嘉宾也来到现场与参会者一起为沙龙庆生。
\Open Space(开放式讨论环节)
\为了促进参会者与我们每期的嘉宾以及讲师近距离交流,深入探讨在演讲过程中的疑问,本次活动依然设置了Open Space(开放式讨论)环节。
\在Open Space的总结环节,几位话题小组长分别对讨论的内容进行了总结。
\\\王剑英:我们针对不同的应用场景讨论了MySQL与不同引擎的结合方案;
\刘启荣:从数据库优化的角度,对数据库选型、引擎、拆分等方面来分享了大家的经验;
\DSpark:主要是和几个朋友讨论了Python和大数据使用相关的内容;
\王集鹄:关注了PC和移动端感应器的区别,同时比较了Native和HTML5 App的用户体验的差异,还讨论了前端CSS的模块话处理方案;
\\
会后,一些参会者也通过新浪微博分享了他们的参会感受:
\\\wxianfeng:好多关键词啊:TPS、 QPS、SSD、HDD、IOPS、RAID 5、INNODB、handler socket、SeqDB、 binlog、位图、Master-Slave、snapshot……另外 @四喜和丸子 的演讲好搞笑啊, 祝百度技术沙龙越办越好.
\太微左桓:昨天的百度技术沙龙没听懂多少东西,不过惊喜却是遇到了王集鹄老师,一轮OpenSpace,收获是巨大的。很庆幸没有中途离场,现在想起来,还是忍不住的亢奋。
\快盘-符小钻: 百度技术沙龙听 @四喜和丸子 讲 mysql 维护,苦逼地发现百实例级别的问题我们都碰到了。再往后,把完善的监控和自动化部署做好,千实例级别完全没有问题。再深入一些,可以根据我们业务的需求做深度定制的存储引擎。抑或是通用的数据分区方案。
\harry小淫既天才:从上年刚进百度实习就开始参加了百度技术沙龙,到现在有好几期了。很喜欢这种开放自由交流的感觉,也开阔了视眼。今天是小度沙龙三周年,祝小龙龙越办越好,影响越来越大。
\Artisan_code:人很不靠谱,靠技术来约束。百度技术沙龙,人之出,性本懒。人的自制力是不靠谱的,需要周围的环境来约束,想腐败都不行。
\
有关百度技术沙龙的更多信息,可以通过新浪微博关注@百度技术沙龙,或者关注InfoQ官方微信:infoqchina,InfoQ上也总结了过往36期所有百度技术沙龙的演讲视频和资料等,感兴趣的读者可以直接浏览内容。
\