

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

# 附录 II
<a name="appendix-ii"></a>

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

以下 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
```

归档 300024 行花了大约 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
```

归档 1999999 行花了大约 3 小时 44 分 29 秒。

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



![\[在运行期间，百分比增加 0.2。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/archiving-mysql-data/images/AppendixII_image1_full.png)


**归档具有主键的表（数据库上具有负载）**

```
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 来完成归档。



![\[图表在运行开始时会激增，并保持提升状态，直到运行完成。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/archiving-mysql-data/images/AppendixII_image2_full.png)


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