您的位置:首页 > 数据库

尝尝甩手掌柜的滋味:京东云数据库初体验

2016-11-25 08:37 211 查看
文/李献  测试/金笑雨
在互联网上的应用很多都是开源的,就像承载他们的Linux系统一样,大把开源的应用覆盖了从系统到应用,从架构到数据库的方方面面。无他,因为免费,因为便宜。选择公有云的用户也都是这样的思路——不用买服务器,不用找IDC托管,不用找运维人员,不用……因此在公有云用户群体中,精熟基础设施的实在太少,更谈不上如何优化系统、数据库来满足自身的业务需求了。因此那些小规模的APP、电商类的网站,在业务没有达到一定规模的时候,整套系统的性能优化、部署都还是一纸空文,因为他们没有精力也没有人员做基础架构的维护。
互联网范儿的数据库

比如MySQL数据库,各大互联网公司都在用,搞得好像是不用MySQL就不是互联网一样,因此大到像新浪微博,小到一个APP类服务器,都在后台使用了MySQL。的确,作为免费的开源数据库,MySQL具有可二次开发修改的特色,可以依照用户的系统需求进行免费修改、扩展,当然,代价是你要有MySQL DBA来做这样的工作。方便大规模部署在x86平台上,也是MySQL得以广泛应用的特点。
正因为MySQL的开源特性,造成绝大多数用户很难将其优化到较高水准,甚至在稳定性、可靠性等方面都会受到影响。例如去年夏天,某代购电商的网上平台,因为DBA突然离职,造成MySQL数据库溢出,影响了数天的业务,这对于小型电商或其他互联网企业而言是巨大的打击。在没有专业DBA的时候,怎么解决这个问题?数据库托管服务,也就是常听到的云数据库——这是公有云供应商为托管客户提供的一种数据库增值服务,不但能帮用户搭建数据服务器,而且在优化、运维和监控等多个环节都提供了专业的支持服务,用户只需要购买云数据库,剩下的就只有一件事——用!



京东云数据库配置界面,从入门级的1GB内存的小规模数据到32GB的中大型数据库都可以支持,存储容量也有400/500/600GB可选(SSD存储)。
京东云数据库测试

企事录在京东云基础云平台上对京东云数据库进行了压力和性能测试,来模拟公有云用户使用云主机+云数据库环境下的表现。因为京东云数据库提供了MySQL 5.6和MySQL 5.7两个版本的数据库服务,MySQL 5.6能更好的兼容之前的MySQL数据库应用,而MySQL 5.7则在性能上有了巨大的飞跃。实际如何呢?带着这样的疑问,企事录技术团队在京东云基础云上部署这样的一个环境。
云数据库: 16GB内存  500GB硬盘( MySQL数据库) 

压力云主机 :4核 8GB内存 30GB硬盘

系统: CentOS 6.7  

数据库版本:MySQL 5.6&5.7

数据库测试工具:SysBench 1.0  (GitHub下载)

测试数据库规模: 200GB

测试方案

1
在充当测试压力机角色的云主机上部署CentOS 6.7系统后,SysBench工具作为数据库测试的压力端,在京东云云主机上挂载云数据库,由主机直接对接数据库。通过SysBench为MySQL写入5个表 每个表规模1000万行,测试数据库规模约200GB。
因为京东云数据库提供了MySQL 5.6/5.7两个版本,因此我们分别在两套云数据库环境下进行了测试,作为对比。
当然,SysBench的缺点也很明显,它所模拟的表结构太简单,不像TPCC-MySQL那样具备完整的事务系统。即便如此,它依然能为MySQL数据库实际性能提供相当靠谱的性能测试分析结果。

OLTP性能指标

2
OLTP(On-Line Transaction Processing,在线事务处理)是直接反映出数据库交易性能的指标,可以看到,5.7较5.6版本在性能上有较大的提升,而且延时更短。在32队列深度的时候,5.7就已经在延时上具有了较大的优势,512队列时延时两套数据库竟然有近一倍的差异。


OLTP读测试指标

3
OTLP读测试对于MySQL类更多的是用户查询内容、产品信息的过程,也是互联网用户中最常见的一种操作模式。在纯读的模式下,5.7的性能远远超出了5.6,峰值差异接近10000QPS。在64队列以上时,5.7的延时就更低了,512队列时甚至比5.6延时低一倍之多。


SELECT测试对比

4
在这样的简单查询的测试脚本模型下,两个版本的数据库性能差异不大。


INSERT插入测试对比

5
插入类脚本中,5.7较5.6高出了50%的性能。这也是用户在实际应用中较常见的一类使用习惯,例如用户提交注册信息、反馈产品评价、上传图片等都可以归为此类应用。因此插入性能高低会直接影响用户的使用体验。例如在对比测试中,在128队列以上的并发时,除了性能有巨大的差异,在延时上5.7也有明显的优势,在用户实际使用中就会有明显的差异。


后台监控截图

6



这是京东云数据库的部分后台监控信息,而且在企事录进行512队列性能测试时,由于触发了数据库性能告警上限,还接到了京东技术部门的即时信息,询问数据库异常操作是否属实……这比一个兼职的DBA做的可细致多了。
为了便于用户理解京东云所提供的MySQL性能达到了什么样的水平,我们把企事录在2015年时基于新浪微博MySQL(官方社区版)环境下的测试结果进行了对比。对比的系统环境是一套某国际大牌厂商全闪存存储设备+20核40线程64GB内存的服务器的物理环境。
可以看到,目前京东云所提供的云数据库已经达到了前年一套几十万硬件环境下的数据库性能的1/3甚至更多了。虽然和硬件性能的提升、数据库版本的提升都有关系,但是可以看到,目前基于公有云的数据库性能已然具有相当出色的水平。



上图是企事录在2014年末进行的全闪存阵列+双路英特尔®至强™ E5v2服务器环境下的MySQL(社区版)性能测试结果表。

总结
京东云数据库为用户提供了即买即用的数据库服务,因为经过了京东电商十几年的服务优化经验,所以京东云的云数据库在面对电商、信息查询等领域具有了丰富的优化经验。
之前我们曾经对京东云做的I/O性能测试中也体现了京东云在性能盘上提供了高达20000IOps的性能。在云数据库测试中,我们感觉到京东云确实拿出了实在的诚意,达到如此出色的性能指标。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: