海光cpu是否支持虚拟化 海光cpu性能测试_oracle

海光cpu是否支持虚拟化 海光cpu性能测试_数据_02





数据智能产业创新服务媒体

——聚焦数智 · 改变商业


任务背景

国际大环境就不用多说了。

对于数据库类的关键业务,全国产技术(国产 CPU+ 国产数据库)和国外主流技术在性能上相比还有不小的差距,经常需要借助分布式技术使用数倍的硬件才能获得类似的效果。

国产编程语言 SPL 的问世,可以方便程序员写出(比 SQL)更短小简单且计算量更低的代码(针对同样计算任务),能够对采用 SQL 的主流数据库形成明显的效率和性能优势。这样,在国产 CPU 上运行用 SPL 编写的数据库运算,就可能获得在国外 CPU 上运行 SQL 数据库的同样性能,甚至大幅超过。从而使数据库运算类的关键业务实现全国产技术替代。

本次测试设计了三个计算任务,涉及常规查询、复杂在线查询和离线跑批任务,分别在海光、龙芯、飞腾三款国产芯片上运行后看效果,并对比历史上在国外芯片上运行的情况

系统配置


海光

龙芯

飞腾

CPU

2颗7285,

共64核

4颗3C5000,

共64核

2颗2500,

共128核

RAM

256G

256G

256G

硬盘

SSD

SSD

SSD

OS

麒麟V10

Loongnix

麒麟V10

SPL

开源社区版 202208

测试一 常规查询,TPCH 

TPCH 是国际标准,具体内容不再过多解释。

需要说明的是,TPCH 虽然有 22 个题,但仍然不能全面反映出被测系统对实际业务的响应性能。主要原因如下两点:

1.TPCH 中问题比较常规,没有涉及序运算,分步运算也较简单。而实际业务中有性能瓶颈的运算,其复杂度通常会远高于 TPCH,会大量涉及序运算和分步计算;

2. 测试问题已经被长期公开,有些数据库可能会专门做相应的优化;

当然,作为国际标准,也会有一定的参考价值。

TPCH 各题的 SPL 写法可参考 从 TPCH 测试学习性能优化技巧

测试结果(单位:秒)


海光

龙芯

飞腾

Intel+Oracle

Q1

25

40

33

131

Q2

2

4

3

27

Q3

8

19

15

222

Q4

4

12

9

207

Q5

15

20

27

225

Q6

3

7

8

135

Q7

11

18

21

184

Q8

13

20

28

192

Q9

31

63

58

234

Q10

10

19

16

215

Q11

2

5

4

33

Q12

7

19

13

184

Q13

97

195

152

37

Q14

6

22

20

157

Q15

12

22

24

155

Q16

9

19

15

13

Q17

9

13

25

165

Q18

7

21

14

344

Q19

9

16

16

154

Q20

7

12

16

175

Q21

19

24

24

326

Q22

23

37

33

48

AVG

14.95

28.5

26.09

161.95

AVG-G

9.68

19.22

18.36

125.56

1. 海光、龙芯、飞腾均以 32 线程运算,初步的测试表明,大多数运算在这个并行数下最快。

2.AVG 行是 22 个题的平均时间;AVG-G 行是几何平均数,这样能反应出性能差距的倍数关系,规避某些题因为普遍都慢在简单平均时权重太大的问题。

3. 最右边对比列,硬件环境:2 颗 Intel 3014 1.7G 共 12 核,64G 内存;Oracle 运行 12 线程。因 CPU 主频及并行数不同,没有直接可比性,但仍有参考价值。

4.SPL 的 Q13 的表现有点特殊,因为 Q13 在这个线程数时,会占用过大内存;而 SPL 用 Java 实现,内存不足时会导致大量的垃圾收集时间。本次测试目标不是调出每个题的最优性能,就没有刻意再优化它。

测试二 离线数据准备,国家天文台聚类计算

这是国家天文台的实际业务,测试也采用了真实数据。

共 11 张照片,每张有 500 万天体,将位置(天文距离)邻近的天体聚合成一个计算属性。期望计算时间在数小时内,因为每天都会有新的照片拍摄出来,必须当天处理完。

本任务的数据量不大(<10G),但计算量非常大,和规模的平方成正比。

用某分布式数据库动用 100 个 CPU,仅处理 50 万天体也需要 3.8 小时,处理 500 万目标规模预计需要 15 天,不具有实用性。

详情可参考 SPL 提速天体聚类任务 2000 倍

测试结果(单位:小时)

并行数

16

32

64

海光

3.91

2.39

2.21

龙芯

6.65

4.04

3.96

飞腾

9.27

5.33

3.64

更高并行没有表现出线性加速,主要是因为这个问题的特殊性,运算步骤之间有依赖关系,各个线程会有重复计算,无法做到线性提速。

三款芯片均可以在目标数据规模时达到任务要求的时间指标,性能都具有实用性。

测试三 在线查询,电商漏斗计算

电商漏斗是典型的有序计算,需要统计在指定时间窗口按指定次序发生多次事件中前 N 个的用户数,以便计算用户流失率为营销动作提供依据。

这是用户行为分析中很常见的计算,也是传统数据库很难高速完成的计算。

漏斗计算的细节和 SPL 加速方法可参考 SQL 提速:漏斗转化分析

本题是美国一家电商企业的真实案例,漏斗共有 5 步,计算难度较高。使用该企业在某个分站点一个月的脱敏数据,规模接近 4 亿行。这个运算用 SQL 在美国著名云数据仓库 Snowflake 的 Medium 级服务器(相当于 64 核)上三分钟未跑出结果,用户期望不超过 30 秒。

测试结果(单位:秒)

并行数

32

16

8

4

海光

16

18

29

59

龙芯

32

41

59

101

飞腾

25

30

44

76

三款芯片在 32 线程时的运算性能可以达到或接近用户的期望值。

补充说明

1. 测试海光时还使用过 CentOS,性能表现要比使用麒麟时有较明显的优势(天文台运算 64 线在 1.5 小时内完成);测试飞腾时仅使用了麒麟,有可能其性能被操作系统影响;龙芯的 Loongnix 看起来表现较出色。

2. 在龙芯上还做过一个军方外围任务测试:在 82 亿行的脱敏海事数据中按时间段和经纬度范围查找经过船只,龙芯上 SPL 的执行性能大概相当于 Intel3014 的 50%,仍比 Intel8260 上的 MySQL 快了数倍到上百倍(和时间段宽度有关)。

初步结论

1. 海光的性能表现明显在三者中最强,性能大约是龙芯和飞腾的两倍。龙芯总体较飞腾稍弱,但差距不是很大,在长时间小并行任务中还能胜出。

2. 使用 SPL 编程时,这三款国产芯片都能胜任数据仓库类的复杂计算场景,能赶上甚至大幅超越国外芯片上国外数据库的性能,完全可应用于关键的数据计算任务。

海光cpu是否支持虚拟化 海光cpu性能测试_数据_03