前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >硬件架构对 数据库的影响 MYSQL 应该在ARM 还是X86 (翻译)

硬件架构对 数据库的影响 MYSQL 应该在ARM 还是X86 (翻译)

作者头像
AustinDatabases
发布2021-11-26 15:00:57
1.1K0
发布2021-11-26 15:00:57
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

下面就是一篇关于MYSQL 在 ARM 结构和X86结构上不同的性能表现的文字翻译,实话说曾经测试时(PG),ARM结构的VS X86结构的PG 的确X86更有优势。下面我们看看MYSQL 在不同的物理结构上的不同表现。别说和你没有关系,ARM结构的服务器已经渗透到了 云厂商,国家政府,军队,等等部门和机构,谁也保不准就用上了ARM 结构的服务器。

———————————————————————————————

译文:

MYSQL 在X86 或 ARM 结构,当我们讨论这个问题的时候,可能随着不断的扩展,会发现很多有意思的事情,但在我们面对很多的数据之前,我们先明白一下这两种结构的不同,除了从CISC 和 RISC 结构来看不同以外,我们最重要的主题是针对MYSQL来说那个结构更好。

这里有几个问题

1 内存模式的高低

2 底层专用指令的不同,例如对于CRC32编码基于硬件没有不同而不同 在于处于底层的指令集合X86 SSE 或者 ARM-ACLE 对指令执行的不同。

3 Cahce的不同,基于ARM结构的处理器更倾向于使用大量的缓存。

4 比如ARM 结构中缺少PAUSE指令,导致在需要低延迟的情况下,无替代指令,某些操作在ARM上的消耗更大,造成一些操作上的挑战和内存使用的问题,如在使用中会有高延迟。

实际上社区已经在MYSQL 上做了一些补丁来适应,但实际上MYSQL 对于ARM结构的支持刚刚开始,大部分工作尚未完成,只优化了少部分的代码。

所以我们现在最重要的是看看一些关于性能方面的问题,我们通过MYSQL 8.019来进行测试,分别在不同的硬件产品上 X86 和 ARM 上来进行比较。

测试硬件为

  • 24 vCPU/48 GB Intel(R) Xeon(R) Gold 6266C CPU @ 3.00GHz for running MySQL on x86.
  • 24 vCPU/48 GB ARM @ 2.60GHz for running MySQL on ARM

两种不同的硬件产品,测试是通过sysbench进行的,测试中数据经过预热,并且通过不同维度的包含OLTP 读写操作, UPDATE 操作中包含索引和不包含索引,以及只读操作等等来查看两种硬件在此的不同。

相关测试的表和配置如下

  • Table: 96-tables * 1.5 million (data-size= 34GB)
  • Buffer Pool: 36GB
  • Redo-Log: 4GB*2
  • TC-run-time: 300 secs
  • TC-warmup: 60 (sysbench –warmup-time)
  • workload-query-based warmup: 600
  • change-over-sleep: 180
  • checksum-based-warmup: enabled
  • data-storage: 300GB (support for 16500 IOPS (nullify effect of Burst IOPS)).

测试结果

1 简单查询


threads

ARM (qps)

x86 (qps)

ARM (qps - fscaled (FS))

% ARM-vs-x86

% ARM (FS)-vs-x86

1

6696

6439

7726

4

20

2

12482

11774

14402

6

22

4

23881

21308

27555

12

29

8

45993

42110

53069

9

26

16

88517

81239

102135

9

26

32

142974

136724

164970

5

21

64

198839

212484

229430

-6

8

128

217778

241555

251282

-10

4

256

209797

224009

242073

-6

8

分析:
在较低线程的情况下,ARM 要优于X86结构,在高负载的情况下,X86要优于ARM结构,同时在FS CPU 自动调整频率的情况下ARM 结构 比X86要优越。

2 只读测试


threads

ARM (qps)

x86 (qps)

ARM (qps - fscaled (FS))

% ARM-vs-x86

% ARM (FS)-vs-x86

1

5222

5259

6025

-1

15

2

10333

10200

11923

1

17

4

19176

19349

22126

-1

14

8

36881

37035

42555

0

15

16

70337

67065

81158

5

21

32

109207

113210

126008

-4

11

64

139294

164148

160724

-15

-2

128

151382

175872

174672

-14

-1

256

149136

164382

172080

-9

5

结果分析:
ARM 结构在定频的方式下与X86性能相近,但在FS的情况下,ARM结构产品要优于X86的产品。

3 读写模式


threads

ARM (tps)

x86 (tps)

ARM (tps - fscaled (FS))

% ARM-vs-x86

% ARM (FS)-vs-x86

1

137

149

158

-8

6

2

251

273

290

-8

6

4

462

502

533

-8

6

8

852

920

983

-7

7

16

1539

1678

1776

-8

6

32

2556

2906

2949

-12

1

64

3770

5158

4350

-27

-16

128

5015

8131

5787

-38

-29

256

5676

8562

6549

-34

-24

结果分析:
在读写模式下, ARM 结构比较X86结构都有一定的差距。

4 update 带索引的情况


threads

ARM (tps)

x86 (tps)

ARM (tps - fscaled (FS))

% ARM-vs-x86

% ARM (FS)-vs-x86

1

328

373

378

-12

1

2

623

768

719

-19

-6

4

1060

1148

1223

-8

7

8

1905

2028

2198

-6

8

16

3284

3590

3789

-9

6

32

5543

6275

6396

-12

2

64

9138

10381

10544

-12

2

128

13879

16868

16014

-18

-5

256

19954

25459

23024

-22

-10

结果分析:

在FS 模式下的ARM结构对比X86的结果相近,在高并发的情况下还是有一定的差距。

5 Update 不带索引的情况


threads

ARM (tps)

x86 (tps)

ARM (tps - fscaled (FS))

% ARM-vs-x86

% ARM (FS)-vs-x86

1

328

373

378

-12

1

2

588

686

678

-14

-1

4

1075

1118

1240

-4

11

8

1941

2043

2240

-5

10

16

3367

3662

3885

-8

6

32

5681

6438

6555

-12

2

64

9328

10631

10763

-12

1

128

14158

17245

16336

-18

-5

256

20377

26367

23512

-23

-11

结果分析:

在低并发的情况下,ARM结构FS模式要比X86性能略强,但在高并发的情况下,MYSQL在X86要比ARM结构表现的更好。

总结:

以下是一些测试通过观察我们得出的结论

1 对于只读工作负载,X86 与ARM 性能相近

2 对于写操作,X86比较稳定,ARM结构中FS模式会更好

3 FS 模式下的ARM并不是大多数情况下的使用方式,但需要注意的是ARM结构的产品比X86产品的价格要低,测试中随着系统争用变多,ARM系统的性能降低,但我们也需要注意MYSQL 也是刚刚开始支持ARM结构的产品,尤其的自旋锁上并没有像X86一样进行优化。

总结:MYSQL 从使用成本考量上,ARM结构的产品应该还是一个性价比可期待的。

原文:

https://mysqlonarm.github.io/MySQL-on-x86-vs-ARM/

注:FS 模式为CPU 超频模式

个人观点:在目前的情况下,无论是PG 还是MYSQL 尽量还是在X86结构的硬件产品上使用,ARM结构目前对于这些开源数据库并不是太友好,尤其在高并发的情况下。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析:
  • 在较低线程的情况下,ARM 要优于X86结构,在高负载的情况下,X86要优于ARM结构,同时在FS CPU 自动调整频率的情况下ARM 结构 比X86要优越。
  • 结果分析:
  • ARM 结构在定频的方式下与X86性能相近,但在FS的情况下,ARM结构产品要优于X86的产品。
  • 结果分析:
  • 在读写模式下, ARM 结构比较X86结构都有一定的差距。
  • 结果分析:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档