随着云数据库的普及,数据库的传输加密也会随之被广泛使用。本文,将使用通用测试来看看,开启TLS传输对数据库的性能有什么样的影响。
1. 原理概述
开启TLS传输加密之后,分别会在建立连接、数据传输两个阶段对性能造成影响。因为建立连接的过程通常是一次性的,连接会被复用,所以这部分的性能开销通常是可以接受的。在传输阶段,是传输加密对性能影响的重要阶段,这时候通常会使用对称加密算法(例如AES256)对数据进行加密,那么实际的对称加密的性能就是对TLS传输加密性能影响最大的部分。需要注意的是,如果应用使用的是短链接(应该尽量避免使用这种方式),TLS加密的密钥交换阶段也会对每个连接建立的过程都有一定的性能影响。
2. 云数据库实际测试
这里选择对RDS MySQL进行测试,云厂商则各自选择国外、国内Top 1的云厂商AWS和阿里云。
2.1 测试方法说明
使用sysbench 1.1.0版本,测试类型为oltp_read_write,相关参数如下:
- –mysql-ssl=REQUIRED 是否使用TLS加密传输
- –percentile=95 关注95%Query的延迟
- –histogram=on 可以查看延迟分布情况
- –time=600 sysbench运行的总时间(秒)
- –warmup-time=60 开始计算性能前预热时间(秒)
- –table_size=1000000 单表100万条记录
- –tables=5 共测试5个表