全密态PolarMySQL的OLTP性能

本文介绍了PolarDB MySQL版8.0.1版本的标准版和集群版分别在开通全密态功能后,OLTP负载性能测试结果。

本文对比了明文查询和密文查询两种情况下的数据库性能,性能指标以QPS、RT、CPU占用率为准。

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

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

说明

全密态对数据库的写入性能没有影响。

集群规格和测试方法

本次压测采用业界标准的SysBench,针对只读(oltp_read_only)基准在不同的线程数量下模拟数据库不同压力时的性能表现。

  • 集群配置

    • 标准版集群

      • 集群规格:polar.mysql.g2.xlarge.c

      • 存储类型:ESSD PL1云盘

      • 数据库节点:1个主节点和1个只读节点,节点规格均为8核16 GB

      • 内核版本:8.0.1.1.41

      • 数据库代理版本:2.8.38

      • 数据库代理配置:16核

    • 集群版集群

      • 集群规格:

      • 存储类型:PSL5

      • 数据库节点:1个主节点和1个只读节点,节点规格均为1~16PCU

      • 内核版本:8.0.1.1.41

      • 数据库代理版本:2.8.38

      • 数据库代理配置:0.5~32PCU

  • 测试参数

    • 表数量:250张

    • 单表数据量:25000行

说明

全密态功能是对数据库代理上的数据执行加密操作,在对数据执行读操作时会对代理产生额外的CPU负载。因此,在进行该性能测试时,标准版集群的数据库代理选择了最大规格16核。代理本身不收取费用,如果您需要使用全密态功能,建议您提前对代理执行扩容操作。

测试结果

标准版测试结果

  • 测试数据表

    线程数量

    明文QPS

    密文QPS

    明文RT(单位:ms)

    密文RT(单位:ms)

    明文内核CPU(单位:%)

    密文内核CPU(单位:%)

    明文代理CPU(单位:%)

    密文代理CPU(单位:%)

    64

    26997.98

    25852.58

    37.92

    39.6

    226

    222

    85

    266

    128

    53991.65

    50477.37

    37.92

    40.56

    408

    396

    177

    512

    256

    108128.31

    93823.23

    37.86

    43.63

    776

    708

    332

    978

  • QPS&RT

    image

  • 内核及代理CPU占用率

    image

集群版测试结果

  • 测试数据表

    线程数量

    明文QPS

    密文QPS

    明文RT(单位:ms)

    密文RT(单位:ms)

    明文内核CPU(单位:%)

    密文内核CPU(单位:%)

    明文代理CPU(单位:%)

    密文代理CPU(单位:%)

    64

    14830.79

    14615.26

    68.96

    70.02

    158

    159

    40

    137

    128

    29628.57

    28518.67

    69.05

    71.77

    291

    278

    78

    268

    256

    59483.84

    50984.73

    68.73

    80.27

    536

    491

    140

    493

  • QPS&RT

    image

  • 内核及代理CPU占用率

    image