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

bd9ee898fa052e33fac16707c8f2b75d.png

下面就是一篇关于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  简单查询


8767d5a1febdf3e0f9e4b7268109ae77.png


threadsARM (qps)x86 (qps)ARM (qps - fscaled (FS))% ARM-vs-x86% ARM (FS)-vs-x86
1669664397726420
2124821177414402622
42388121308275551229
8459934211053069926
168851781239102135926
32142974136724164970521
64198839212484229430-68
128217778241555251282-104
256209797224009242073-6

8

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

2 只读测试

cd19fcce1caf73fa4a5f30af9d29b253.png

threadsARM (qps)x86 (qps)ARM (qps - fscaled (FS))% ARM-vs-x86% ARM (FS)-vs-x86
1522252596025-115
2103331020011923117
4191761934922126-114
8368813703542555015
16703376706581158521
32109207113210126008-411
64139294164148160724-15-2
128151382175872174672-14-1
256149136164382172080-95
结果分析:
ARM 结构在定频的方式下与X86性能相近,但在FS的情况下,ARM结构产品要优于X86的产品。

3 读写模式

130a0e63f2b7b92014d8543b9dfa6e0d.png

threadsARM (tps)x86 (tps)ARM (tps - fscaled (FS))% ARM-vs-x86% ARM (FS)-vs-x86
1137149158-86
2251273290-86
4462502533-86
8852920983-77
16153916781776-86
32255629062949-121
64377051584350-27-16
128501581315787-38-29
256567685626549-34-24
结果分析:
在读写模式下, ARM 结构比较X86结构都有一定的差距。

4 update 带索引的情况


90a91fdb388ee01373a1d8f0fac608b9.png

threadsARM (tps)x86 (tps)ARM (tps - fscaled (FS))% ARM-vs-x86% ARM (FS)-vs-x86
1328373378-121
2623768719-19-6
4106011481223-87
8190520282198-68
16328435903789-96
32554362756396-122
6491381038110544-122
128138791686816014-18-5
256199542545923024-22-10

结果分析:

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


5  Update  不带索引的情况


cfe03131c3530ec7ea4abe72d83a642b.png

threadsARM (tps)x86 (tps)ARM (tps - fscaled (FS))% ARM-vs-x86% ARM (FS)-vs-x86
1328373378-121
2588686678-14-1
4107511181240-411
8194120432240-510
16336736623885-86
32568164386555-122
6493281063110763-121
128141581724516336-18-5
256203772636723512-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结构目前对于这些开源数据库并不是太友好,尤其在高并发的情况下。

80d0c249352a5f8b6e2c5fdd70e297d9.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值