近两年来,国内外诸如AWS、Azure等公有云巨头都先后推出了自研的数据库服务,青云QingCloud不仅推出了分布式数据库RadonDB,同时还将这一经过公有云验证的数据库产品应用到企业数据中心,通过将分布式技术与数据库相结合,再加上SSD的性能加成,性能好得让人不敢相信。比如网联公司公布去年“双十一”时,其峰值交易量每秒达到92000笔,如果用RadonDB的话,也许只需数台就可以支撑。
温馨提示:这篇测试长文阅读大约需要10分钟。
如何根据企业所需构建面向未来的数据中心,这是绝大多数CIO都在思考的问题。
尤其是智能终端时代,数据蔓延正使得这一问题更加复杂,比如,手机银行之于营业厅固定的业务窗口,手机App之于固定数量的销售渠道,以及源起网络购物的一次次人造“狂欢节”……
对于企业来说,IT负载正变得不可预测,同时生态内外的数据流通正日趋复杂与频繁,数据蔓延正对企业IT的性能、容量以及管理带来巨大的挑战。
在IT演进的过程中,云计算已经被认为是企业IT的必经之路,这在过去几年中已经得以充分证实,尤其是公有云方面的实践,一定程度上调和了企业IT需求与成本之间的矛盾,这也使得混合云趋势正日趋明显。
公有云的成功经验正越来越多地应用在企业内部数据中心,以帮助企业更顺利地向云端迁移,最典型莫过于源自互联网分布式存储的SDS(Software Define Storage,软件定义存储)已经成为企业存储市场最主流的趋势之一。
RadonDB分布式数据库:从公有云验证到企业数据中心应用
随着公有云服务在企业数据中心内部的应用,不仅帮助用户解决了现实问题,同时也让公有云厂商更加了解企业业务特点,为后续推出满足用户需求的产品与解决方案提供了条件。典型如数据库产品,近两年来,国内外诸如AWS、Azure等公有云巨头都先后推出了自研的数据库服务,而青云QingCloud不仅推出了分布式数据库RadonDB,同时还将这一经过公有云验证的数据库产品应用到企业数据中心。
相对于公有云环境,企业数据中心的业务更加复杂,对于IT基础架构的要求也更高。数据库不仅需要部署在数据中心内部的物理服务器、虚拟机、容器等私有云环境,并在必要时能够扩展到公有云之上。
软件定义存储与SSD的应用推动分布式数据库进入企业数据中心,实际上存储与数据库的结合亦更加紧密(如Server SAN的一大场景就是数据库)。SSD的高性能优势在一定程度上有助于提升数据库的性能,简化数据库架构,让分布式成为可能,理论上实现容量的***扩展,并性能亦随之线性增长。
青云QingCloud新一代分布式数据库RadonDB,基于开源的MySQL技术研发,而MySQL是全球范围内应用最广泛的数据库,其开源的性质能够杜绝厂商锁定,开源社区的蓬勃发展培养了一大批精通MySQL的人才,为企业部署、应用、管理MySQL提供了便利。如同x86服务器一样,其不仅方便使用,也易于管理,有助于降低企业数据中心成本。
但在海量数据时代,单机版MySQL数据库已经很难满足企业应用需求,而部署集群版MySQL则更多出于可靠性目的,虽然也有企业基于MySQL开发出分布式部署版本,但更多是面向特定需求,离成熟产品还有一段距离。而RadonDB则率先在公有云中应用改进,然后根据企业应用特点进行优化,进而形成一个标准商用的产品,以方便企业用户使用。
具体来说, RadonDB主要包含两大模块的改进和创新:radon和xenon。radon是一个分布式SQL层,主要负责数据路由和计算;xenon则是一个MySQL集群高可用组件,用以构建分布式存储层,具有秒级选主(Master)、选主后的数据快速回放、以及实现主从切换后的数据零丢失等功能。RadonDB从技术上对分库分表式概念进行了更进一步的扩展,使其成为具备高可用、满足Snapshot隔离级别分布式事务的开源分布式数据库,而非仅仅只是一个分库分表组件。
RadonDB分布式数据库架构图(来源:青云QingCloud)
RadonDB性能测试前 环境搭建和组件说明
一般来说,数据库与存储(确切地说是块存储)的关系非常紧密,通常数据库的性能与存储的性能息息相关。而分布式存储的性能一方面要依赖硬件,同时也与分布式存储软件本身的优化相关。下图为RadonDB测试架构:
整个测试环境由6台服务器和一台25GbE交换机组成,主要分为分布式存储环境和RadonDB分布式数据库环境。每台服务器均配备2颗Intel Xeon E5-2650 v4处理器(12核,2.2GHz)和64GB内存。
在存储方面,为了更好地体现RadonDB分布式数据库的性能,E企研究院使用“全闪”配置的分布式存储作为RadonDB数据库存储。分布式存储以最小三节点部署,每个节点配备了4片4TB大容量的Intel DC P4510 SSD。这是Intel第四代U.2接口的NVMeSSD,更好的性能与较大的容量能够更容易观察到RadonDB数据库性能的上限。
分布式存储方案使用新一代25GbE网络,以提升数据内部流通的带宽。根据以往的测试经验,在全闪配置环境中,10GbE网络通常会成为存储瓶颈,进而影响应用性能发挥。所以在本次RadonDB测试使用了25GbE网络,分布式存储通过iSCSI连接到RadonDB数据,iSCSI是企业环境中标准通用的数据传输技术,能够最小化对企业现有环境的影响。同时,25GbE能够更好地支持RDMA技术(Remote Direct Memory Access,远程直接内存访问),即RoCE或iWARP,在iSCSI连接无法提供应用需要的存储性能情况下,可以很容易升级到新的数据传输协议,比如iSER(iSCSI Extensions for RDMA)或者NVMe over Fabric等。
在数据库方面,RadonDB可最小二节点部署(满足最小可用性),通常三节点起步。在本次测试中使用三节点部署,并以二节点数据库性能作为参照,考量RadonDB数据库的可扩展性。利用RadonDB的自动化部署与运维工具Ansible,进行简单的端口和变量设置,即可实现一键安装,整个部署过程简洁方便。
E企研究院希望尽可能贴近真实应用环境,通过测试模型去尽可能真实地模拟实际应用环境,但实际环境中通常存在多种不可预估情况,且与特定应用负载息息相关。E企研究院在本次测试中使用Sysbench软件用以评估RadonDB数据库性能,并根据大多数应用运行负载构造测试数据,尽可能为更多用户提供参考。
同时为了更进一步探寻RadonDB分布式数据库的极限,因为这与RadonDB数据库的应用场景相关,E企研究院对测试组件进行了一些调整,将Intel DC P4800X SSD作为RadonDB数据库的数据缓存。Intel DC P4800X SSD即Intel公司Optane(傲腾),相比SSD,具有更均衡的读写能力,且延迟更低,据Intel实验室数据:相比NAND SSD,Optane用作数据库缓存,数据库有数倍性能提升。
Intel将Optane用作数据库缓存,有着3倍以上的性能提升,同时数据库平均响应时间降低了三倍左右,以此说明Optane的性能优异(来源于Intel)
随着人工智能、大数据分析等应用方式的出现,企业场景化、个性化服务等创新业务对移动互联网的依赖越来越高,手机、互联网交易成为主流的交易渠道,促销、抢购等活动常常导致业务突发高点,业务数据量和交易量的暴增对企业数据库提出了高的要求。
为此,E企研究院的测试围绕“性能”而展开,一是RadonDB数据库最小配置下的性能,二是从2节点扩展到3节点后,RadonDB数据库的性能变化。
RadonDB小试牛刀:分布式技术在数据库领域的验证
E企研究院使用Sysbench软件分别在RadonDB和MySQL数据库中构建了16张表,共2亿行数据,约占用80GB存储空间。在读、写性能测试中,一个事务即一条SQL;在混合读写中,一个事务中包含4条读SQL和1条写SQL。
E企研究院首先测试了RadonDB数据库分别在2节点与3节点下的性能,并以单机MySQL(社区版5.7.22)的性能作为参照组。两者的软硬件配置完全一样,均使用相同容量的SSD作为数据存储。
两节点部署的RadonDB数据库性能与单机部署的MySQL数据库性能,在写场景下大致相当,前者略高。这可以理解,在分布式环境下,两节点部署通常是出于可用性设计,与单机部署的写性能相差不大。但在读性能方面,两节点部署的RadonDB数据库性能,相比单机部署的MySQL数据库性能有较大提高(这有些类似RAID 1的读写性能特征)。
而在3节点部署的RadonDB数据库环境下,相比2节点,其性能提升了1倍左右。如上图,三节点RadonDB的80000 TPS相比2节点RadonDB的35000 TPS,写性能提升超过一倍,而在读性能方面,也约有50%的性能提升;在混合场景(读写比例8:2)下,性能提升了80%左右。相比2节点最小部署配置,3节点正常部署下,性能将约为单机部署的MySQL性能的2倍左右。
而在延迟方面,RadonDB数据库发挥出了“分布式”技术的优势特点,即通过多节点的并行读写,不仅能够提升数据库的性能,同时极大地降低了事务处理过程中的瓶颈延迟。如上图所示,在读性能方面,3节点RadonDB数据库的平均延迟仅为MySQL的60%,在写方面,RadonDB数据库平均延迟约为MySQL的三分之一,而在混合读写测试中,也降低到MySQL数据库平均延迟的二分之一左右。
更高的性能与更低的平均延迟,意味着RadonDB数据库可以支撑更核心更关键的应用场景,不仅是分布式原理提供了更好的可用性,同时性能和延迟都能满足更为苛刻的应用需求。而且更为重要的是,这验证了分布式技术同样也适用于数据库领域,能够为应用需求提供“弹性”,即可伸缩的性能,以及容量。
不可预测性是现代IT面临的一大难题,将分布式与数据库相结合,这就意味着RadonDB也如分布式计算或分布式存储技术那样,能够根据企业现有应用需求进行部署,随着应用的性能需求变化而通过增删数据库节点来进行灵活调整(性能或容量)。
面向OLTP应用:如何进行性能扩展
上一测试是为了验证RadonDB数据库在实验室极端环境下的性能,同时也检验环境是否安装配置正确,其性能数据并不能代表生产环境中的性能。排除极少的极端情况,实际环境中数据库的读写负载模型更加复杂多变,并与特定应用直接相关。而在这一测试中,E企研究院希望通过模拟贴近真实的应用负载,以此来考量QingCloud RadonDB数据库在性能扩展方面的表现。
OLTP是数据库最常见也是最核心的应用场景之一,通常是企业关键应用的代名词,其通常意味着可靠性、可用性以及高性能等等特点,而在海量数据时代,其还增加了一个需求,即(性能和容量)的可扩展性,从数据库层面来看,即对数据库的管理与优化,这通常是一个长期过程,且与应用负载的变化息息相关。
数据库优化方式与存储系统的特点变化有着紧密的联系。而随着云计算时代的深入,尤其是分布式技术的不断普及深化,正改变越多越多的企业IT架构,典型如分布式对计算和存储行业的技术革新。而公有云供应商将分布式技术应用于数据库领域,也将影响和改变数据库的管理和优化方式。
数据库优化,在一定程度上,即是根据应用特点对数据处理方式与存储位置做出相应改变,因为很难对(SAN)存储做出改变。但是云计算时代的数据库,在引入分布式技术以后,则为数据库性能优化提供了另外一种选择,借用存储行业的两个术语:Scale-out横向扩展与Scale-up纵向扩展。典型如RadonDB数据库通过分布式原理能够实现节点数的增加,性能与容量增长;而计算、存储与网络等硬件技术的发展,又为单个数据库节点的性能提升带来了条件。但对用户而言有一个重要前提:RadonDB等新兴的数据库都是基于标准的x86硬件,这意味着能够更快享受到x86及其周边硬件更新带来的性能红利。如支持U.2接口的NVMe SSD和25GbE网络几乎是现在主流x86服务器的标配,但在传统SAN存储领域,要完全发挥更“企业范儿”的U.2 NVMe SSD的性能特点,还需时间,更不要说支持RDMA的25GbE网络了。
因此,以下测试正是围绕这两个特点进行设计:一方面分别对二、三节点配置的RadonDB数据库性能进行测试,考量其Scale-out横向扩展后的性能变化;另一方面则通过在数据库节点增加性能更好的存储介质(即Optane做缓存),而不改变其他条件,以此体现RadonDB数据库在使用新硬件后的性能变化。以下为测试结果:
RadonDB分布式数据库从2节点扩展到3节点之后,数据库性能从6824 TPS(Transactions Per Second,每秒在线事务处理数,衡量数据库性能的单位)上升到了11285 TPS,TPS提升了大约1倍左右;平均延迟则从2节点的75ms下降为3节点的45ms,时间也差不多接近越来的二分之一。
对于基于开源的商用数据库产品而言,在单一数据库系统内,其TPS从千上升到万是一个不小的进步。比如说起网络购物,***个反应也许就是“双十一”,政策规定,目前所有的网络购物支付都必须经过网联清算公司(简称“网联”)的结算平台。据网联公布的2019年“双十一”数据:其当日处理的交易总笔数为11.7亿笔,在峰值时,每秒的交易处理在9.2万笔左右。虽然并不能与实际情况划等号,但也许10节点RadonDB数据库就能支撑这一负载?出于可靠性,当然还需要额外几台备用。
这只是使用NAND SSD做数据库存储的情况,如果使用性能更好的新硬件,支撑每秒10万笔交易,RadonDB数据库节点数量也许能够降到个位数。因为在另一测试中,E企研究院在每个RadonDB数据库节点上增加了两片容量为375GB的Intel Optane SSD DC P4800X(简称Optane,即傲腾SSD),互为冗余,用作数据库缓存,主要利用Optane的高写性能加速数据库写IO。同样是在二、三节点RadonDB数据库环境下进行测试,其性能变化如下:
Optane用作缓存之后,RadonDB数据库两节点的性能上升到了26900 TPS,大约是未使用Optane情况下的4倍左右;三节点性能则从11285上升到了60996,RadonDB数据库性能至少提高了5倍以上。
而且,在数据库响应时间方面也有很大的提升。如上表所列,未使用Optane时,2和3节点RadonDB数据库的响应时间分别为75ms和19ms,在使用Optane之后,相同测试条件下,其响应时间分别下降到45ms和8ms,约为使用Optane前的四分之一。
仅就数据库而言,也许只需数台RadonDB数据库就能支撑起“双十一”庞大规模的交易量,这一方面得益于分布式技术在其中的应用;另一方面也得益于庞大的x86生态系统,RadonDB数据库能够在尽可能短的时间内就能够验证、应用更新且性能更好的硬件技术或产品,以此进一步提高数据库自身的性能。
当然这虽然只是实验室数据,还有待实际环境验证。但结合E企研究院以往的测试数据来看,RadonDB分布式数据库已经初步具备了成为企业关键应用数据库的条件,具有较好的性能、可用性以及易维护性,并且将分布式技术带来的“弹性”与数据库很好地结合在一起。
虽然本次测试结果主要以性能数字展现,但其背后却RadonDB数据库与传统数据库不同的特点,比如RadonDB数据库性能和容量的可扩展性,这一方面来自于经过验证的分布式技术,另一方面也可从采纳新硬件中获得,其背后离不开x86这一强大生态;而另一强大生态则在于MySQL开源社区,理论上RadonDB数据库不仅能够从开源社区获得***的数据库改进技术,也能获得宝贵的学习经验以及数据库管理人才,尽可能降低企业用户更新换代所需的学习成本;而青云QingCloud公有云供应商的基因则助推了RadonDB的产品化过程,不仅能够了解企业用户的应用特点,同时也能加快其研发速度,让RadonDB能够更有针对性地满足海量数据时代下数据库性能与容量需求。2018年初,RadonDB 已在GitHub开源,可以通过radondb.io了解更多详情和进行深度体验。