39

测试报告RadonDB分布式数据库:从公有云验证到企业数据中心应用

 5 years ago
source link: http://database.51cto.com/art/201903/594263.htm?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

近两年来,国内外诸如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隔离级别分布式事务的开源分布式数据库,而非仅仅只是一个分库分表组件。

6j2Y3am.png!web

RadonDB分布式数据库架构图(来源:青云QingCloud)

RadonDB性能测试前 环境搭建和组件说明

一般来说,数据库与存储(确切地说是块存储)的关系非常紧密,通常数据库的性能与存储的性能息息相关。而分布式存储的性能一方面要依赖硬件,同时也与分布式存储软件本身的优化相关。下图为RadonDB测试架构:

BfmIru3.jpg!web

整个测试环境由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等。

VRrmyyi.jpg!web

在数据库方面,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用作数据库缓存,数据库有数倍性能提升。

UjMBZf7.jpg!web

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作为数据存储。

fuINvq6.jpg!web

两节点部署的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数据库在使用新硬件后的性能变化。以下为测试结果:

QviIzir.jpg!web

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数据库环境下进行测试,其性能变化如下:

6Z3Enez.jpg!web

zUFjmeM.jpg!web

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了解更多详情和进行深度体验。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK