暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TDE对EDB Postgres Advanced Server 15的影响

新智锦绣 2024-10-24
47

点击蓝字关注我们


介绍


透明数据加密 (TDE) 是 EDB Postgres Advanced Server 和 EDB Postgres Extended Server 版本 15 支持的可选功能。

它对存储在数据库系统中的任何用户数据进行加密。这种加密对于用户来说是透明的。用户数据包括存储在表和其他对象中的实际数据,以及系统目录数据(例如对象名称)。

有关 EDB TDE 实施的更多信息:https://www.enterprisedb.com/docs/tde/latest/

在本文中,我们将通过EDB性能和架构团队 (PEAT) 执行的 2 个基准测试来评估使用 EDB 透明数据加密的影响。然后我们将能够了解以下问题:

  • 在事务性工作负载期间,TDE 对性能有何影响?

  • 将非加密数据库集群升级到加密数据库集群时,TDE对升级过程有何影响?


对性能的影响


2.1 基准的描述


本基准测试中使用的是TPROC-C (HammerDB),其数据库由 2000 个数据仓库(约 200GB 数据)组成。目标数据库引擎是 EDB Advanced Server 版本 15。

该基准测试进行了两项测试:

  • 随着虚拟用户数量的增加而加大测试力度

  • 使用大量 (75) 虚拟用户执行长期测试(1 小时)。

对于每个测试,我们都会测量 HammerDB 返回的使用 TDE 的数据库集群以及不使用 TDE 的另一个数据库集群的每分钟订单数 (NOPM)。

两个数据库集群使用相同的性能参数。


2.2 系统的配置



2.3 参数配置


PostgreSQL设置应用于所有两个数据库集群:

    shared_buffers='36GB'
    max_connections=1000
    checkpoint_completion_target='0.93'
    checkpoint_timeout='30min'
    max_wal_size='300GB'
    effective_cache_size='100GB'
    random_page_cost=1
    seq_page_cost=1
    effective_io_concurrency=200


    2.4 基准测试结果


    2.4.1 测试#1-增加用户数

    测试中,HammerDB 的虚拟用户数量不断增加(5 x 5),从 5 个增加到 95 个。对于每个虚拟用户数量,测试持续时间为 20 分钟。此测试针对启用了 TDE 的 EPAS 实例和未启用 TDE 的 EPAS 实例执行。

    结果;

    从0到60个虚拟用户,TDE 和无 TDE NOPM 率非常接近。

    从60到95个虚拟用户,无TDE NOPM稍高一些。使用TDE时,事务处理速度比不使用TDE时慢2.5%。


    2.4.2 测试#2-稳定状态

    测试中,HammerDB 配置为使用75个虚拟用户。测试持续时间设置为1小时,加速持续时间设置为5 分钟。此测试针对启用了TDE的EPAS实例和未启用TDE的EPAS实例执行。

    No-TDE CPU 使用率:

    TDE状态CPU使用率:

    内存使用情况:

    PGDATA 读吞吐量 (kB/s) 

    PGDATA 写入吞吐量 (kB/s)

    PGWAL 写入吞吐量 (kB/s) 

    每分钟新订单数 (NOPM) 


    使用 pg_upgrade 对升级过程的影响


    数据加密是有成本的。在本基准测试中,我们评估将版本14中未加密的EPAS集群升级到版本15中加密和未加密EPAS集群时的成本。因此,我们将能够根据 pg_upgrade 的持续时间和CPU使用率来衡量加密成本。操作需要。

    该基准测试中使用的数据集由 HammerDB 生成。数据库大小为300GB(3000个TPROC-C数据仓库)。借助时间工具来跟踪和测量pg_upgrade进程所花费的CPU使用率和运行时间。两个数据库集群都启用了页面校验和功能。

    Table大小

    pg_upgrade命令

    当 TDE 未启用时: 

      $ usr/edb/as15/bin/pg_upgrade \
       -d pgdata/data \
       -D /pgdata/data_15 \
       -b /usr/edb/as14/bin \
       -B /usr/edb/as15/bin \
       --copy-by-block

      当TDE启用时的;

        $ /usr/edb/as15/bin/pg_upgrade \
         -d /pgdata/data \
         -D /pgdata/data_15 \
         -b /usr/edb/as14/bin \
         -B /usr/edb/as15/bin \
         --copy-by-block \
         --key-unwrap-command "cat /pgdata/data_15/pg_encryption/key.bin"

        注意:升级到加密数据库集群时需要使用 --copy-by-block。


        3.1System配置



        3.2 基准测试结果


        系统和用户 CPU 所用的时间

        CPU使用率

        升级耗时


        结论


        4.1 性能基准 


        • 当系统CPU不过载、虚拟用户数较少时,启用TDE对性能的影响并不大。

        • 当系统CPU使用率较高且虚拟用户数量较多时,TDE的影响是数据库系统可以处理的事务率下降了7.3%。

        • 在这种类似于TPC-C (TPROC-C) 的上下文中,根据 PGWAL 写入吞吐量图表,启用 TDE 不会导致更高的数据库页速率或更大的数据库大小。


        4.2 pg_upgrade 基准测试


        • 将 300GB 数据升级到加密数据库集群(使用 TDE)并不会显着增加总体升级过程持续时间。

        • 即使升级到加密集群的过程需要多花费 11% 的 CPU,这也不会真正影响整体持续时间。

        • 与升级到未加密的数据库集群相比,时间开销仅为0.3%。


        本文中描述的基准测试表明,使用EDB的TDE不会对事务性能 (<7.5%) 或数据库升级时间 (0.3%) 产生重大影响。





        扫码进 EDB 微信群

        发现“分享”“赞”了吗,戳我看看吧


        文章转载自新智锦绣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论