本文介绍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
只读
线程 | 明文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 |
读写
线程 | 明文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只读测试结果如下:
线程 | 明文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读写测试结果如下:
线程 | 明文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 |
相关说明
此次测试对所有查询后的数据内容均进行了加密。在客户业务系统中,如果只是针对少数敏感字段加密,性能会优于此次测试的结果。
全密态功能只影响数据库读操作的效率。因此,只读场景是全密态性能测试结果较差的场景;读写场景相对全密态性能影响较小;只写场景下,全密态则完全不造成性能影响。
全密态功能本身基本只对CPU有额外的负载,对磁盘、内存没有压力。