英特尔® 傲腾™ 持久内存是一款革命性的持久内存产品,补齐了DRAM与磁盘之间的需求缺口,重构内存/存储层次架构,集大容量、经济性和持久性于一身,帮助用户优化数据中心基础设施,满足大数据分析、数据库、云与虚拟化、分布式存储等多种应用场景需求。为了帮助用户通过傲腾持久内存来实现应用创新优化,助力企业业务系统实现性能突破,浪潮发布了基于英特尔® 傲腾™ 持久内存的多种场景方案,本方案是基于英特尔® 傲腾™ 持久内存200系列的Oracle应用方案。
Oracle数据库是甲骨文公司的一款关系数据库管理系统,是目前世界上使用最为广泛的数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。Oracle数据库支持OLTP和OLAP两大数据处理。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易、飞机订票、股票交易等。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。Oracle数据库最新长期公共版本为Oracle Database 19c。
Online Redo Log的维护和性能是影响Oracle工作的一个重要方面。Oralce Online Redo Log是数据库为了保证已提交的事务不会丢失而建立的一种机制,能在数据库crash时,恢复数据,保证数据不丢失。在数据库操作中,只要有任何的数据块变化,都会生成相应的redo entry。
In-Memory特性是自Oracle 12c版本开始引入的重大新特性之一,本质上是一种内存计算技术,它在内存中开辟了一个空间,按照列的方式存储一份数据副本。用户可以从内存中快速地访问并对这些列式缓存数据进行计算,从而提升数据库查询和分析的性能。整体而言对于OLAP系统,In-Memory对于数据集市和查询展现层都可以带来明显的性能提升。In-Memory使用的独立内存区域,且空间需求较大,因而为享有该特性性能提升,增加内存纵向扩展成为关键。
本方案介绍基于英特尔®傲腾™持久内存技术在Oracle OLTP与OLAP场景下的最佳实践。
英特尔®傲腾™持久内存创新性解决方案新增内存扩展方式专为打破服务器内存容量限制而优化,补齐了DRAM内存与磁盘之间的需求缺口,打造高性能、大容量的持久内存层,有助于更加高效地挖掘数据的潜在价值。
图1:英特尔® 傲腾™ 持久内存存储层
英特尔®傲腾™持久内存新一代产品200系列(Barlow Pass,即BPS)基于第三代英特尔®至强®可扩展处理器优化,容量有128GB、256GB和512GB三种。相对于上一代100系列产品,Ice Lake平台单颗CPU容量最大支持到4TB,内存频率提升至3200MT/Sec,单通道平均性能提升25%。
英特尔®傲腾™持久内存200系列具有两种工作模式:内存模式(MM)和App Direct 模式(AD)。
内存模式,CPU内存控制器将所有英特尔®傲腾™持久内存200系列视为易失性系统内存(无数据持久性),以更低的成本提供更大的内存容量,无需更改应用,并且性能接近 DRAM。
App Direct模式,能够实现较大内存容量和数据持久性,支持持久内存编程,软件和应用能够直接与英特尔®傲腾™持久内存通信,降低了堆栈的复杂性,并充分利用缓存一致性的字节可寻址特性,将持久内存的使用扩展到本地节点之外;App Direct模式提供一致的低延迟,同时支持更大的数据集。
图2:英特尔®傲腾™持久内存工作模式
场景一:OLTP
在OLTP场景下,使用英特尔®傲腾™持久内存200系列(AppDirect Mode)作为Oracle Redo Log存放介质(Storage over AD),利用PMem 低Latency和高Throughout特性,能够提升Oracle在TPC-C测试模型中的TPM(Transaction Per Minute)性能值,及降低其事务响应延迟。通用测试工具HammerDB进行测试,使用HammerDB提供的TPC-C测试模型来评估OLTP应用场景性能。
AD Mode测试配置(表1)
BPS |
SSD |
|
CPU |
Intel(R) Xeon(R) Gold 6348 CPU @ 2.60GHz 28C |
|
Mem |
16*32GB 3200 MT/s |
|
Redo Disk |
2*128G BPS(SoAD,2 regions,128G/region) |
2*480GB SSD(S4510,RAID1) |
Data Disk |
6*960G SSD(RAID5) |
表1:SSD vs BPS配置对比表
图3:方案插法对比图
TPC-C性能结果
测试结果TPM性能如图4:
图4:SSD vs BPS性能对比图
测试CPU消耗监控如图5:
图5:SSD vs BPS消耗CPU对比图
在该OLTP测试中,性能瓶颈主要在于磁盘I/O。SoAD模式下,SSD、PMem分别作为redo盘的测试对比中,TPM性能BPS方案平均是SSD的2.2倍;CPU使用方面BPS方案平均是SSD 2.65倍,性能提升与CPU使用增长基本一致。
响应时间
SSD和PMem分别作为Redo Log存放介质时,统计TPC-C测试模型中NewOrder事务响应时间如图6。
注:P50为50%事务的平均响应时间,P95为95%事务的平均响应时间,P99为99%事务的平均响应时间,相应时间单位ms。
图6:SSD vs BPS事务响应时间对比图
使用PMem和SSD分别作为Oralce 19c Redo Log,通过HammerDB测试不同并发数统计NewOrder的50%、95%、99%事务的平均响应时间,BPS响应时间要显著优于SSD。
场景二:OLAP
Oracle在OLAP场景下,数据仓库数据量都相对较大,启用In-Memory功能特性,能够有效的提升查询性能。英特尔®傲腾™持久内存200系列能够使两路平台单颗CPU支持多达4TB的内存容量,数据仓库数据量较大时,使用英特尔®傲腾™持久内存200系列(Memory Mode)能够为Oracle数据库服务器提供更大的内存容量,更高的性价比。通用测试工具HammerDB进行测试,使用HammerDB提供TPC-H测试模型来评估OLAP应用场景性能,测试Vuser 1情况下22条SQL查询执行时间。
Memory Mode方案测试配置(表2)
DRAM |
BPS84 |
BPS44 |
|
CPU |
Intel(R) Xeon(R) Gold 6348 CPU @ 2.60GHz |
||
Mem |
32*32GB DDR4 |
16*16GB DDR4 |
8*16GB DDR4 |
BPS |
- |
8*128GB |
|
Redo Disk |
2*480GB SSD RAID1 |
||
Data Disk |
6*960GB SSD RAID5 |
图7:方案插法对比图
TPC-H查询时间
TPC-H每项的5次测试平均用时结果如下:
说明:BPS84,每颗CPU配置8根DRAM+4根BPS;BPS44,每颗CPU配置4根DRAM+4根BPS。
图8:DRAM vs BPS查询时间对比图
●开启Oracle 19C的in-Memory功能能够大幅缩短查询用时,1TB内存配置方案: DRAM、BPS44、BPS84平均性能提升约2.9、3.2、3.4倍。
●非in-Memory下,BPS44和BPS84性能分别是DRAM的71.3%和79%。
●in-Memory下,BPS44和BPS84性能分别是DRAM的90.8%和92.2%。
在OLTP场景下,英特尔® 傲腾™ 持久内存替换SSD存放Oracle 19c Redo Log,大幅缓解I/O压力,释放算力,减小事务响应时间,提升数据库性能。
在OLAP场景下,英特尔® 傲腾™ 持久内存扩展方案满足Oracle性能需求,表现优秀的稳定性和性能,其价值在于以更低的成本提供更高的内存容量。