京东云上Oracle数据库 企业关键业务在云端

来源:互联网 发布:数据库条件查询语句 编辑:程序博客网 时间:2024/06/03 23:44

虽然选用公有云的大都是中小型用户,他们在云上大多数都会选择MySQL数据库。但是总是有那么一小簇用户,他们尝试将自己的关键业务数据库也迁移到云端,比如Oracle数据库。

当然,一次性将Oracle数据库迁移到公有云确实风险极大,不过不尝试怎么知道在公有云上也能“正常的"跑Oracle数据库这样的关键业务呢?更何况企事录早在2015年,我们就已经在某托管云上进行过独享资源池的Oracle性能测试了,但是对于京东云这样的公有云而言,用户都在共享云计算资源,如何在这样的共享环境下跑Oracle,对于我们而言还真是个挑战。

大家都知道去IOE的故事,因为I家的小型机、E家的磁盘阵列和O家的数据库一度占据着中国大中型用户核心业务的大半江山。但是时过境迁,IE已经随风飘散,用户找到了更好的替代(更便宜)对象,x86已经成为Oracle数据库的首选平台了,当然,这同Oracle 12c有莫大的关系,要不是它采用面向云计算的方向,可能IE还不会溃败的如此之快。

既然是面向云的数据库,自然有支持云上业务的可能。为什么说可能?因为Oracle数据库作为企业关键业务承载,对后台计算和存储的延时等参数非常敏感,比如说云主机能提供16核计算资源,但是系统如果时不时的卡顿一下,哪怕只有0.5秒的时间,就会影响到数据库的性能和安全;再比如说云计算领域大家普遍采用的SDS技术,除了保证有足够的存储带宽,还要有较高的IOps性能,最关键的延时和抖动还不能太出格,否则在数据库层上就会明显的感觉到性能的下降。

云端Oracle性能需求

一:计算节点性能要强,且在高负载时有良好的稳定性。
二:存储节点IOps要高,读写性能差距不能过大,这直接牵扯到Oracle的TPM性能。

上一期企事录对京东云基础云的I/O性能进行了测试,作为公有云市场的后来者,京东云占据了服务器平台新、性能高的优势,在京东云基础云上,可以提供20000 IOps响应的性能盘,虽然带宽是业内流行的400MB,但是在面向Oracle 12c数据库8KB的小文件性能可以达到20000 IOps,已经是相当出色的指标了。

由于京东云性能盘使用了全SSD作为存储介质(并非用SSD做分层加速的形式,这点对于企业关键业务数据库非常重要,因为具体落盘的指标如果都不能得到保障,整套系统就妄谈性能了),因此先天就具有高IOps的优势,实测的指标也显示出,在CentOS 6.7环境下,20000 IOps是可以确保达到的,那么相比传统机械硬盘HDD单盘只能提供最高200 IOps(15K SAS接口硬盘)的指标来看,京东云性能盘的性能约等同于一个100块盘的磁盘阵列的性能了。我们再延伸下思路,100块硬盘的磁盘阵列是用来做什么的?对于昂贵的磁盘阵列来说,100块盘的阵列需要最少几十万的成本,舍得花如此大价钱肯定不是单纯为了存储容量,自然是为企业关键业务来准备的,像传统的Oracle数据库就是非常典型的一类应用场景。


4台这样的SAN才能提供20000 IOps的性能指标

京东云基础云究竟是否能承载企业关键业务数据库的运行呢? 企事录在京东云基础云平台上模拟中小企业的Oracle数据场景,评估迁移到云端的可能性,考量京东云对关键业务应用的支撑。

由于存储部分的性能是确定的,因此我们可以依照在物理环境下的测试反推我们需要什么样性能的云主机。从企事录历史测试数据中分析后得出如下结论:20000 IOps大概需要一路Xeon E5-2650 v3这样级别的服务器才能充分满足Oracle 12C数据库的计算性能,如果选择16核 32GB的服务器主机,那么服务器的计算性能就有一半被浪费了,而选择4核 16GB主机又会在计算性能上产生瓶颈。

综合考量后,我们在京东云上建立了如下的云主机环境:

测试配置:

Oracle云主机:8核16GB内存配置,自带30GB存储(系统盘,不限IOps性能,估计约10W以上,而且现在可以选择系统盘容量了),CentOS 6.7,Oracle 12c Database

存储:400GB性能盘;Oracle数据库存储
      200GB性能盘;Oracle日志卷
      30GB性能盘;系统SWAP分区

压力客户端:2核4GB,使用万兆以太网与Oracle数据库云主机连接

测试结果:
测试数据量:20GB
用户数量:80


峰值TPM接近6.2万,平均TPM为56759;峰值TPS为1104,平均TPS为955;最大响应时间(突发响应时间)为1698ms,平均响应时间在20ms左右;


测试使用了按不同比例混合的6常见数据库操作,上图显示为不同数据库操作在一秒钟内的响应次数,每秒平均响应次数基本都在50次左右,最大响应次数都超过了500次

测试结果分析:

对于数据量较小的中小企业数据库应用而言,京东云能够给Oracle数据库环境提供较好的支持。如前面测试,20GB的测试数据量,其TPM能够达到6.2万,平均TPM也能接近5.7万(对应的峰值TPS为1100,平均TPS为955),能够满足中小企业的应用环境所需。

由于存储瓶颈的限制(单块性能盘只支持20000 IOPS),且在我们测试进行性,云主机的系统盘限制为30GB,针对Oracle数据库环境,这意味着我们要额外使用两块数据盘(一块用作SWAP分区,一块用作Oracle日志卷),由于单个云主机最多支持挂载4块云硬盘,因此,在此次测试中只使用了1块性能盘作为Oracle数据库存储。

按道理讲,如果能够挂载更多的云硬盘来作为Oracle数据库存储,其性能会更加好。比如支持自定义系统盘大小后,可以在创建云主机时,选择较大的系统盘容量后,可将系统盘作为SWAP和Oracle日志卷。挂载的4块云硬盘可以全部作为Oracle数据库存储,理论上随着挂载云硬盘数量的增多,其性能线性增长,能够支持更大规模的应用。这一点企事录将在稍后的集群应用测试中进行验证,敬请期待!

总结:

面向中小型用户环境,京东云可以在Oracle 12c环境下提供一个相当不错的数据库性能,6W TPM的指标在用户数据中心里的物理机环境中都未必能轻松获得。虽然京东云基础云并没有提供Oracle数据库的直接支持,但是从企事录的部署和测试中来看,京东云的云主机环境在部署Oralce时还是比较方便快捷的,虽然我们也不鼓励用户将关键业务数据库放在公有云上,但是探索下未来中小企业的应用趋势,对用户未来选型肯定是有帮助的,您说呢?


阅读全文
0 0
原创粉丝点击