기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
부록 II
이 섹션에서는 다양한 시나리오에서 pt-archiver 도구에 대한 벤치마킹 결과를 제공합니다. sysbenchdb.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
300,024개의 행을 아카이브하는 데 약 34분이 걸렸습니다. 이 테이블에는 2백만 개의 행이 있지만 도구는 인덱싱된 열에 대해 고유한 데이터가 있는 행만 아카이브했습니다.
프라이머리 키가 있는 테이블 아카이브(데이터베이스에 로드가 부과되지 않음)
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와 리소스를 거의 소비하지 않음을 보여줍니다.
프라이머리 키가 있는 테이블 아카이브(데이터베이스에 로드가 부과됨)
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
1,999,999개의 행을 아카이브하는 데 약 9시간 43분 36초가 걸렸습니다.
다음 그래프에서는 테스트 중에 sysbench에서 적용한 로드로 인해 CPU 사용률이 최대 15%가 되었음을 보여줍니다. 로드가 완료된 후 pt-archiver는 아카이브를 완료하기 위해 예상대로 최소 CPU를 소비하는 작업을 계속했습니다.
그래프에서 알 수 있듯이 pt-archiver는 데이터베이스에 로드가 있을 때 적극적으로 아카이브를 수행하지 않습니다.