

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

本節提供不同案例中 pt-archiver 工具的基準測試結果。[sysbench](https://github.com/akopytov/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
```

大約需要 34 分鐘的時間來封存 300，024 個資料列。此資料表有 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
```

大約需要 3 小時、44 分鐘和 29 秒的時間來封存 1，999，999 個資料列。

下圖顯示 pt-archiver 自行執行時，在系統中沒有任何負載的情況下，會耗用極少的 CPU 和資源。



![\[在執行期間，百分比會增加 0.2。\]](http://docs.aws.amazon.com/zh_tw/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_tw/prescriptive-guidance/latest/archiving-mysql-data/images/AppendixII_image2_full.png)


從圖表可以明顯看出，當資料庫有負載時，pt-archiver 不會積極封存。