mariadb 10의 mysqldump가 매우 느립니다.

mariadb 10의 mysqldump가 매우 느립니다.

AWS RDS에서 MariaDB 10.1.34 인스턴스를 실행하고 있습니다. 인스턴스 사양은 다음과 같습니다.

  • 인스턴스 클래스: db.t2.large
  • 저장 공간: 100GiB gp2
  • 데이터베이스 크기: 1.2GiB

데이터베이스와 동일한 가용 영역에 있는 EC2 인스턴스에서 mysqdump를 생성하려고 합니다. 이것이 작동하는 동안 성능은 매우 좋지 않습니다. mysqldump를 사용하여 데이터베이스(1.2GiB 크기)를 덤프하는 데 약 15분이 소요됩니다.

저는 EC2 인스턴스에서 디스크 및 네트워크 사용량을 모니터링해 왔습니다. mysqldump의 처음 5초 동안 네트워크 사용량은 약 600Mbit/s에서 최고조에 달한 다음 약 200kbit/s로 떨어집니다. 디스크 사용량도 마찬가지입니다.

이상하게도 데이터베이스 인스턴스를 다시 시작하면 동작이 일시적으로 수정되는 것 같습니다. mysqldump는 완료하는 데 30초가 걸렸다가 다시 느려졌습니다.

데이터베이스 인스턴스의 쓰기 IOPS는 10~15 정도이고 읽기 IOPS는 인스턴스가 다시 시작될 때까지 20을 초과하지 않습니다.

이 문제를 추가로 디버깅하는 방법에 대한 제안을 주시면 감사하겠습니다.

편집하다:

mysqldump 명령도 추가해야 합니다.

ubuntu@server:~$ mysqldump --version
mysqldump  Ver 10.13 Distrib 5.7.23, for Linux (x86_64)
ubuntu@server:~$ mysqldump -h <db_host> -p -P 3306 -u <read_only_user> --quick --single-transaction --skip-lock-tables <database> > dump.sql 

답변1

이건 네가 맞은 전형적인 사례야T2/T3 버스트 성능.

아시다시피 T2/T3 인스턴스가 유휴 상태일 때 "CPU 크레딧"을 축적한 후 필요할 때 빠르게 실행하는 데 사용됩니다. 그러나 인스턴스가 최대 속도로 실행되면 이러한 크레딧이 고갈되고, 남은 크레딧이 없으면 인스턴스 속도가 느려집니다. 자세한 내용은 여기를 참조하세요.버스트 성능 인스턴스에 대한 CPU 크레딧 및 기본 성능

위에서만 언급했지만CPU 포인트경험상 직접적인 영향을 미친다는 것을 알고 있습니다.네트워크 성능다시 말하지만 Amazon에서 이에 대한 문서를 찾을 수 없습니다. 이것은 또한 당신이 관찰한 것입니다.

이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.

  1. 로 전환M4/M5 인스턴스 유형- 일정한 성능을 가지며 CPU 크레딧의 영향을 받지 않습니다. 하지만 T2/T3보다 약간 더 비쌉니다.

  2. ~할 수 있게 하다T2 무제한환경(이봐), 인스턴스 포인트가 0이 될 때마다 인스턴스 포인트가 재충전되지만, 추가 비용을 지불해야 합니다. 귀하의 사용 사례에 가장 적합한 옵션일 수 있습니다. 그러나 조절 없이 항상 T2를 최고 속도로 실행하는 것은 동일한 크기의 M4 인스턴스를 실행하는 것보다 비용이 더 많이 듭니다.

관련 정보