本文介绍 OceanBase 数据库在开启和未开启 TDE 加密场景下的数据库性能的影响,帮助您评估是否选择开启 TDE 加密。
测试结论
开启 TDE 功能后,使用 128/256 并发测试 OLTP 场景,其中 update 场景性能无影响,但其他场景性能略有损耗。
point select 场景性能损失 3%左右,read_only 场景性能损失 1% 左右。
read write 场景性能损失 2%左右,write only 场景性能损失 1% 左右,insert 场景性能损失 1% 左右。
整体来看,在单点查询场景 point select、读写场景 read write 性能损失较为明显,但均在 3% 以下。
测试环境
集群配置
配置项
相关配置
集群版本
OceanBase 4.2.1.8 版本
集群规格
2F1A,primary zone=zone1,8C16G
集群机器
CPU:8C
内存:61G
客户端配置
配置项
相关配置
操作系统
Linux iZbp1eodxjpfw80wly2g4oZ 5.10.134-16.3.al8.x86_64 #1 SMP Tue Mar 26 18:54:05 CST 2024 x86_64 x86_64 x86_64 GNU/Linux
sysbench 版本
sysbench 1.0.20
cpu 规格
8C
内存
30G
测试工具
sysbench 是一个跨平台且支持多线程的模块化基准开源测试工具,用于评估系统在运行高负载数据库时的性能。
测试指标
每秒执行事务数 TPS(Transactions Per Second):数据库每秒执行的事务数,以 COMMIT 成功次数为准。
事务处理平均延迟(Average Latency):数据库执行一条事务的平均耗时,单位为毫秒(ms)。
测试步骤
本次测试以 128 张表,每张表数据量为 100 万条,执行时间为 60 秒为例。
安装 sysbench 工具
sysbench 工具使用yum install
一键安装或者通过手动方式安装。
使用
yum install
一键安装。在客户端机器上,执行如下命令,安装 sysbench 工具。
sudo yum install sysbench
手动安装
下载 sysbench。
sysbench 工具下载,请参考 sysbench 下载。
解压 sysbench。
unzip ./1.0.20.zip
编译 sysbench。
进入 sysbench 解压后的目录,运行以下命令编译 sysbench:
[w****@localhost ~]# cd sysbench-1.0.20 [w****@localhost sysbench-1.0.20]# ./autogen.sh [w****@localhost sysbench-1.0.20]# ./configure --prefix=/usr/sysbench/ --with-mysql-includes=/usr/include/mysql/ --with-mysql-libs=/usr/lib64/mysql/ --with-mysql [w****@localhost sysbench-1.0.20]# make [w****@localhost sysbench-1.0.20]# make install
参数说明:
参数名
说明
--prefix
指定 sysbench 的安装目录。
--with-mysql-includes
指定 mysql 的 includes 目录。
--with-mysql-libs
指定 mysql 的 lib 目录。
--with-mysql
sysbench 默认支持 MySQL。
运行以下命令,验证 sysbench 是否安装成功:
[w****@localhost sysbench-1.0.20] $./src/sysbench --help
如果返回以下信息,则 sysbench 安装成功。
Usage: sysbench [options]... [testname] [command] Commands implemented by most tests: prepare run cleanup help
执行测试
测试其他线程及脚本的流程与下述测试流程一致。
下述测试流程以 MySQL 租户,线程数为 128 ,创建表为 128 张,每张表数据为 100 万,执行时间为 60 秒,测试脚本为 read write 为例。
MySQL 模式的数据库环境创建,详细步骤可参见 购买实例 > 新建租户 > 新建账号 > 创建数据库(仅 MySQL)。
登录测试租户。登录数据库的连接串信息,请参见 获取连接参数。
obclient -h$host -P$port -u$user_name -p******
清除垃圾数据,空出部分数据盘空间。
obclient> PURGE RECYCLEBIN;
设置超时时间。
obclient > set global ob_query_timeout=36000000000;
设置透明加密方式,关于设置透明加密方式详细信息,可参考 TDE 透明加密。
退出数据库,使用 sysbench 工具加载测试数据。
[w****@localhost src]# ./sysbench --db-driver=mysql --mysql-host=[database server host] --mysql-port=[database server port] --mysql-user=[database user name] --mysql-password=[database user password] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=128 --time=60 oltp_read_write prepare
执行自定义测试脚本。
[w****@localhost src]# ./sysbench --db-driver=mysql --mysql-host=[database server host] --mysql-port=[database server port] --mysql-user=[database user name] --mysql-password=[database user password] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=128 --time=60 oltp_read_write run
清理数据。
[w****@localhost src]# ./sysbench --db-driver=mysql --mysql-host=[database server host] --mysql-port=[database server port] --mysql-user=[database user name] --mysql-password=[database user password] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=128 --time=60 oltp_read_write cleanup
测试结果
测试脚本/线程数 | 是否开启 TDE | 128(tps/rt avg) | 256(tps/rt avg) | rate |
point select | TDE 关 | 161720.04/0.79 | 172429.16/1.48 | \ |
point select | TDE 开 | 161113.90/0.79 | 167284.47/1.53 | -2.98% |
read only | TDE 关 | 6571.77/19.47 | 6877.75/37.19 | \ |
read only | TDE 开 | 6558.48/15.51 | 6813.74/37.54 | -0.93% |
read write | TDE 关 | 3483.70/36.10 | 3575.20/71.50 | \ |
read write | TDE 开 | 3391.10/37.72 | 3572.78/71.55 | -2.61% |
insert | TDE 关 | 37806.09/3.38 | 54585.23/4.69 | \ |
insert | TDE 开 | 37121.78/3.45 | 54353.98/4.71 | -0.42% |
update | TDE 关 | 29743.67/4.30 | 38743.35/6.61 | \ |
update | TDE 开 | 29866.70/4.28 | 38905.09/6.58 | 无影响 |
update non index | TDE 关 | 38892.58/3.29 | 55662.11/4.60 | \ |
update non index | TDE 开 | 39250.25/3.26 | 56661.89/4.52 | 无影响 |
write_only | TDE 关 | 11583.12/11.05 | 12395.72/20.64 | \ |
write_only | TDE 开 | 11450.32/11.17 | 12259.25/20.87 | -1.10% |
上述表格中,rate 中的-
表示性能下降。例如:point select 在 TDE 开启后,性能会下降 2.98% 。