RDS MySQL全密态功能性能测试

本文介绍RDS MySQL 8.0及RDS MySQL 5.7版本高可用系列在开启全密态功能后OLTP负载性能测试。

背景信息

此次测试对比了两种查询情况下的数据库性能(以QPS、RT为准)。

  • 明文查询:不设置任何加密规则。

  • 密文查询:对数据库中所有列进行加密。

说明

全密态对数据库写入无性能影响。

实例规格和测试方法

此次测试采用行业标准压测工具--SysBench,分别针对只读(oltp_read_only)、读写(oltp_read_write)两个基准,在不同的线程数下模拟数据库不同压力时的性能表现。

  • 实例配置:

    • 实例规格:mysql.n2.xlarge.2c

    • 实例规格族:通用型

    • 实例系列:高可用系列

    • 实例存储类型:ESSD PL1 云盘

    • 版本:RDS MySQL 8.0 20240229,RDS MySQL 5.7 20240229

  • 测试参数:

    • 单表数据量:25000

    • 表数量:250

测试结果

RDS MySQL 5.7

只读

image.png

线程

明文QPS

密文QPS

明文RT

密文RT

64

14332.58

14021.94

71.43

73.01

128

28712.27

28097.95

71.32

72.87

256

51173.18

43663.67

80.02

93.79

读写

image.png

线程

明文QPS

密文QPS

明文RT

密文RT

64

14349.46

14073.52

89.18

90.93

128

28745.73

28480.96

89.03

89.86

256

52388.17

47524.69

97.69

107.69

RDS MySQL 8.0

只读

在不同数量线程下,Sysbench只读测试结果如下:

image.png

线程

明文QPS

密文QPS

明文RT

密文RT

64

20957.01

20451.69

48.85

50.06

128

40395

40523.26

50.68

50.52

256

67328.31

53119.03

60.8

77.07

读写

在不同数量线程下,Sysbench读写测试结果如下:

image.png

线程

明文QPS

密文QPS

明文RT

密文RT

64

20201.55

19942.42

63.35

64.17

128

40133.36

40343.33

63.76

63.43

256

62039.77

46675.26

82.46

109.59

相关说明

  1. 此次测试对所有查询后的数据内容均进行了加密。在客户业务系统中,如果只是针对少数敏感字段加密,性能会优于此次测试的结果。

  2. 全密态功能只影响数据库读操作的效率。因此,只读场景是全密态性能测试结果较差的场景;读写场景相对全密态性能影响较小;只写场景下,全密态则完全不造成性能影响。

  3. 全密态功能本身基本只对CPU有额外的负载,对磁盘、内存没有压力。