View a markdown version of this page

쿼리 워크로드 조정 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

쿼리 워크로드 조정

워크로드를 잘 조정하면 고성장을 위한 안정적인 솔루션을 구축하는 데 많은 도움이 됩니다. 워크로드가 제대로 조정되지 않으면 사용하는 Amazon Aurora 클러스터의 성능과 상관없이 성능이 저하되고 애플리케이션의 사용자 경험에 영향을 미치는 병목 현상이 발생합니다. 가장 좋은 방법은 시스템에서 문제가 되는 쿼리를 식별하고 조정하는 데 도움이 되는 프로세스를 처음부터 마련하는 것입니다.

워크로드에서 문제가 되는 쿼리 추적 및 조정

고성장에 직면했을 때 워크로드를 잘 조정하면 절반은 이긴 게임입니다. Aurora 클러스터가 직면하고 있는 실시간 워크로드 및 성능 문제의 특성을 이해하려면 팀이 작성자 인스턴스와 리더 인스턴스 모두에서 문제가 되는 쿼리를 수집해야 합니다. 워크로드가 최적 상태에서 실행되도록 이러한 문제가 있는 쿼리를 조정해야 합니다. Amazon Aurora MySQL 호환 버전은 이 작업을 수행하는 두 가지 방법을 제공합니다.

  • 성능 개선 도우미

  • 느린 쿼리 로그

성능 개선 도우미 사용

성능 개선 도우미는 평균 활성 세션(AAS)을 기준으로 Aurora 라이터 또는 리더 인스턴스의 부하를 추적합니다. AAS 값은 샘플링과 CPU가 쿼리 워크로드를 선택하고 처리하기를 기다리는 활성 세션 수를 사용하여 계산됩니다. 성능 개선 도우미는 활성 세션 대기로 인한 최대 부하를 유발하는 SQL 문을 확인할 수 있는 그래픽 인터페이스를 제공합니다.

성능 개선 도우미 그래프 및 차트

이전 스크린샷에서는 저장 프로시저 my_sqrt에 대한 호출로 인해 평균 13.03개의 세션이 부하 처리를 기다립니다. 논리적인 다음 단계는 이 절차를 조정하는 것입니다. 리더와 라이터에서 해당 인스턴스에 부하를 유발하는 SQL 문을 식별하고 AAS 값이 떨어지고 성능 개선 도우미에서 최대 vCPU 점선 아래로 유지될 때까지 성능을 개선하도록 SQL 문을 조정해야 합니다. 조정 작업이 한도에 도달했는데도 여전히 AAS가 최대 vCPU 제품군보다 높다면 더 큰 인스턴스 클래스를 선택하여 워크로드를 처리할 수 있습니다. 먼저 쿼리 워크로드를 조정하지 않고는 더 큰 인스턴스를 선택하지 마세요. 트래픽이 증가하면 워크로드의 잘못된 쿼리로 인해 생성된 결함 라인이 노출되기 시작할 수 있기 때문입니다.

느린 쿼리 로그 사용 및 CloudWatch에 게시

느린 쿼리 로그는 기본 MySQL 기능이며 성능 개선 도우미를 보완합니다. 모범 사례는 이 두 가지 방법을 모두 사용하여 인스턴스에 혼란을 야기할 수 있는 문제가 있는 쿼리를 미리 방지하는 것입니다. 느린 쿼리 로그는 동적 변수 long_query_time보다 느린 모든 쿼리를 로깅합니다. 클러스터 인스턴스를 다시 시작하지 않고도 이 변수를 설정할 수 있습니다.

조정 작업에서 유연성과 격리를 제공하려면 라이터 및 리더 인스턴스에 대해 별도의 파라미터 그룹을 사용합니다. 이는 읽기-쓰기 분할을 사용하는 경우 특히 중요합니다. 필요에 따라 클러스터 인스턴스에서 long_query_time에 대한 편안한 제한을 설정합니다. 부하를 조정하면서 임계값을 밀리초 수준으로 설정할 수 있으므로 long_query_time 변수에서 공격적인 값을 목표로 할 수 있습니다. 동시성이 높고 워크로드가 잘 조정되어 있으면 거의 모든 쿼리가 밀리초 내에 실행될 것입니다.

Amazon Aurora MySQL 호환 버전에서 파일에 느린 쿼리를 기록하도록 설정하면 Aurora MySQL 호환 버전이 Aurora MySQL 호환 파일 시스템에 느린 쿼리 로그를 쓰고 24시간 동안 유지합니다. 느린 쿼리 로그를 분석을 위해 더 오랜 기간 동안 유지하려면 Amazon CloudWatch에 게시합니다. 또한 CloudWatch 대시보드를 구축하여 느린 쿼리를 모니터링할 수 있습니다. 자세한 내용은 블로그 게시물 Creating an Amazon CloudWatch dashboard to monitor Amazon RDS and Amazon Aurora MySQL을 참조하세요. Amazon CloudWatch에서 느린 쿼리를 분석하는 것 외에도 Percona Toolkit의 도구인 pt-query-digest를 사용하여 느린 쿼리 로그를 프로파일링할 수 있습니다.

팀의 효율성을 높이기 위해 쿼리를 다운로드하고 프로파일링하는 이 프로세스를 자동화하도록 선택할 수도 있습니다. 팀은 자주 그리고 더 긴 간격으로 실행되는 쿼리가 있는지 확인하고 조정 우선순위를 정해야 합니다. 느린 쿼리 로그에 쿼리가 거의 기록되지 않는 상태를 목표로 하고, 워크로드를 이해하고 조정하면서 long_query_time을 줄여 효율을 높일 수 있습니다.