附录二 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

附录二

本节提供不同场景下 pt-archiver 工具的基准测试结果。此测试中使用 sysbench 工具来加载数据库。所有测试都是在实例类上运行的 Amazon RDS for MySQL db.r6g.8xlarge 实例上执行的。

以下 sysbench 命令用于准备和运行数据库上的负载:

sysbench oltp_read_write --db-driver=mysql --mysql-db=<DATABASE> --mysql-user=<USER> --mysql-password=<PASSWORD> --mysql-host=<ENDPOINT> --tables=1000 --table-size=2000000 --threads=500 prepare  sysbench oltp_read_write --db-driver=mysql --mysql-db=<DATABASE> --mysql-user=<USER> --mysql-password=<PASSWORD> --mysql-host=<ENDPOINT> --tables=1000 --rate=500 --threads=500 run 

存档没有主键且只有一个索引的表(不会对数据库造成负载)

Started at 2022-11-07T05:29:12, ended at 2022-11-07T06:03:31 Action     Count   Time    Pct commit    600050 1715.3582   83.31 select    300025  166.5470    8.09 inserting   300024  165.4025    8.03 other       0  11.6644    0.57

存档 300,024 行花了大约 34 分钟。该表有 200 万行,但该工具仅存档索引列中具有唯一数据的行。

存档具有主键的表(不会对数据库造成负载)

Started at 2022-11-16T08:53:49, ended at 2022-11-16T12:38:18 Action         Count   Time      Pct commit       4000000 11065.9534      82.16 select       2000000  1278.1854       9.49 inserting    1999999  1050.4961       7.80 other              0    74.1519       0.55

存档 1,999,999 行花了大约 3 小时 44 分 29 秒。

下图显示,pt-archiver 在系统中没有任何负载的情况下自行运行时,消耗的 CPU 和资源非常少。

在运行期间,百分比增加0.2。

存档具有主键的表(数据库负载)

Started at 2022-11-16T17:37:07, ended at 2022-11-17T03:20:43 Action         Count   Time        Pct commit       4000000 19688.8362      56.23 inserting    1999999 13933.4418      39.79 select       2000000  1305.1770       3.73 other              0    89.1787       0.25

存档 1999999 行花了大约 9 小时 43 分 36 秒。

下图显示,在测试期间,由于 sysbench 施加的负载,CPU 利用率高达 15%。加载完成后,pt-archiver 继续工作,按预期消耗最少的 CPU 来完成存档。

图表在运行开始时会激增,并保持提升状态,直到运行完成。

从图表中可以明显看出,当数据库有负载时,pt-archiver 不会主动存档。