Azure Database for MySQL 서버 크기 조정 요구 사항 결정

완료됨

컴퓨팅 리소스 크기를 조정할 때는 기존 사용량과 예상 사용량이 용량 범위 내에 있는지 고려합니다. CPU 및 RAM 사용률과 같은 기본 성능 메트릭을 모니터링하여 필요한 정보를 가져올 수 있습니다. 느린 쿼리 로그를 사용하면 성능이 낮은 쿼리를 식별 및 최적화하고 컴퓨팅 크기의 크기를 조정하지 않고도 성능 문제를 해결할 수 있습니다. 또한 I/O 성능을 모니터링하여 데이터베이스 읽기 및 쓰기가 성능 병목 현상을 일으키지 않는지 확인해야 합니다. 기본 데이터베이스에서 사용 가능한 용량을 효과적으로 늘리는 또 다른 옵션은 읽기 복제본을 프로비전하여 쿼리 로드를 전환하는 것입니다.

데이터베이스 성능 메트릭 모니터링

Azure Portal은 데이터베이스 성능을 모니터링하는 데 사용할 수 있는 다양한 메트릭에 대한 액세스를 제공합니다. 예를 들어, 유연한 서버에서 사용하는 CPU 비율을 시각화할 수 있습니다.

CPU 사용률을 보여 주는 메트릭 스크린샷.

CPU 사용률이 100%에 가까워지면 데이터베이스 성능이 심각하게 저하됩니다. 결과적으로 유연한 서버의 CPU 사용률이 지속적으로 50%를 초과하는 경우 컴퓨팅 크기를 늘리는 것이 좋습니다.

모니터링 개요 통합 문서에서 성능 메트릭을 볼 수 있습니다. 개요 통합 문서에 액세스하려면 다음 단계를 수행합니다.

  1. Azure Portal의 왼쪽 창에 있는 Azure Database for MySQL 유연한 서버 인스턴스 모니터링에서 통합 문서를 선택합니다.

    통합 문서 목록을 보여 주는 모니터링 섹션의 스크린샷.

  2. 개요 통합 문서를 선택합니다. 다음 스크린샷과 같이, 연결, CPU 및 메모리 사용량, 기타 메트릭을 보여주는 그래프가 표시됩니다.

    모니터링 개요 통합 문서의 스크린샷.

이러한 메트릭을 분석하는 것 외에도 유연한 서버의 로그 패널에서 성능에 대한 인사이트를 얻기 위해 서버 진단을 볼 수 있습니다.

쿼리 선택기를 보여 주는 로그 패널의 스크린샷.

이러한 메트릭 및 로그 외에도 느린 쿼리 로그를 모니터링하여 장기 실행 쿼리에 대한 세부 정보를 캡처할 수도 있습니다. 이 정보는 최적화를 위해 기존의 느린 쿼리를 표시할 수 있으며, 완화를 위해 향후 쿼리 성능 회귀를 즉시 검색하도록 경고를 설정할 수 있습니다.

느린 쿼리 로그 기능을 사용하도록 설정하려면 유연한 서버와 연결된 페이지에서 서버 로그를 선택한 다음 "사용" 및 "느린 쿼리 로그" 확인란을 선택합니다.

느린 쿼리 서버 로그를 사용하도록 설정하는 Azure Portal 페이지의 스크린샷.

느린 쿼리 로깅이 활성화되면 로그 분석 또는 시각화 통합 문서를 사용하여 쿼리 성능 인사이트를 볼 수 있습니다. 쿼리 성능 Insight에 액세스하려면 위와 동일한 단계를 따르되 개요 대신 Query Performance Insights를 선택합니다.

다음 스크린샷과 같이, 가장 긴 상위 5개 쿼리 또는 느린 쿼리 요약을 포함한 여러 시각화가 표시됩니다.

가장 긴 상위 5개 쿼리 및 느린 쿼리 요약의 스크린샷.

서버 성능 매개 변수 조정

모니터링을 기반으로 성능을 최적화하도록 MySQL 서버 매개 변수를 구성할 수 있습니다. 예를 들어, innodb_buffer_pool_size의 값을 늘려 더 많은 테이블 데이터를 메모리에 유지하고 디스크 읽기를 저장할 수 있습니다. 크래시 복구 속도가 느려지는 대신 innodb_log_file_size를 늘려 버퍼 풀의 검사점 플러시 작업을 줄일 수 있습니다.

애플리케이션 연결이 큐에 있고 서버 로드가 허용 가능한 경우 최대 연결 수를 늘려 더 많은 병렬 처리를 허용할 수 있습니다.

서버 매개 변수를 수정하려면 MySQL 유연한 서버용 Azure Portal로 이동하여 서버 매개 변수 섹션으로 이동합니다. 검색 창에 매개 변수 이름을 입력하거나 지원되는 상위 또는 전체 서버 매개 변수를 찾습니다.

자동 크기 조정 IOPS 기능 탐색 및 사용

Azure Database for MySQL에는 사전 프로비전된 IOPS와 "자동 크기 조정된" IOPS(초당 I/O 작업)라는 두 가지 방법으로 디스크 IO 용량을 할당할 수 있습니다.

데이터베이스 로드가 예측 가능하고 급증하지 않는 경우에는 사전 프로비전된 IOPS가 바람직할 수 있습니다. 서버는 프로비전된 기본 IOPS 수를 가져오고, 컴퓨팅 + 스토리지로 이동하여 필요에 따라 추가 IOPS(최대 컴퓨팅 크기까지)를 할당할 수 있습니다.

사전 프로비전된 IOPS를 추가하기 위한 설정 패널의 스크린샷.

급증이 발생하는 경우 I/O 작업이 할당된 값을 초과하면 서버 성능이 일시적으로 저하될 수 있습니다. 그러나 용량과 비용은 예측 가능합니다.

자동 크기 조정 IOPS 기능은 예측할 수 없거나 급증하거나 증가하는 데이터베이스 트래픽을 위해 빌드되었습니다. 이 기능을 사용하도록 설정하면 IOPS가 동적으로 크기 조정되므로 워크플로 변동에 따라 비용이나 성능을 최적화하기 위해 수동으로 조정할 필요가 없습니다. 결과적으로 자동 크기 조정 IOPS 기능을 사용하면 예기치 못한 워크로드 급증을 투명하게 처리하고 사용되지 않은 용량이 아닌 소비된 작업에 대해서만 비용을 지불합니다.

기존 MySQL 유연한 서버의 경우 컴퓨팅 + 스토리지를 선택하여 Azure Portal에서 IOPS 자동 크기 조정 기능을 사용하도록 설정할 수 있습니다.

IOPS를 자동 크기 조정하는 만들기 옵션의 스크린샷.

참고 항목

서버를 만드는 동안 자동 크기 조정 IOPS 기능을 사용하도록 설정할 수도 있습니다.

IOPS 모니터링

IOPS를 모니터링하면 사전 프로비전된 IOPS를 사용할 때 인스턴스가 최대 IOPS에 얼마나 가까운지, 자동 크기 조정 IOPS 기능을 사용할 때는 최대 컴퓨팅 크기에 얼마나 가까운지 확인할 수 있습니다.

IOPS 성능을 모니터링하려면 모니터링 섹션 아래의 메트릭 블레이드로 이동하거나, 다른 일반적인 메트릭과 함께 IOPS 성능을 보려면 개요 블레이드로 이동합니다.

개요 블레이드 모니터링의 스크린샷.

WingTip Toys에서는 마케팅 캠페인이 시작되면서 예측할 수 없는 시기에 트래픽이 크게 증가할 것으로 예상하므로 들어오는 주문을 수용하지 못할 위험을 피하려고 합니다. 또한 실제로 필요하지 않은 경우 최대 용량에 대한 비용을 지불하는 것을 피하고 싶을 수도 있습니다. 필요에 따라 IOPS를 수동으로 추가해야 하는 사전 프로비전된 IOPS 대신 자동 크기 조정 IOPS 기능을 사용하도록 선택합니다. 이 방식은 비용 효율성과 수요에 따른 확장성의 균형을 유지합니다.

읽기 복제본 프로비전

읽기 전용 쿼리를 별도의 데이터베이스로 오프로드하기 위해 읽기 복제본을 프로비전하여 기본 애플리케이션 데이터베이스의 로드를 줄입니다.

읽기 복제본을 프로비전하려면 Azure Portal의 유연한 서버와 연결된 페이지에서 복제를 선택한 다음 복제본 추가를 선택합니다.

복제본 추가 단추의 스크린샷.

읽기 복제본을 만든 후 복제본 서버 이름과 해당 컴퓨팅 및 스토리지 설정을 구성할 수 있습니다. 인증과 같이, 주 서버에서 상속된 일부 설정은 변경할 수 없습니다.

복제본 추가 스크린샷.

Wingtip Toys의 데이터 과학 팀과 보고 도구는 이제 읽기 복제본 서버에 쿼리할 수 있으므로 기본 애플리케이션 데이터베이스의 로드가 줄어들고 분석을 제한하거나 근무 시간 외 쿼리를 제한할 필요가 없습니다.