Pink Spider/MySql Slow Query 모니터링

Created Thu, 29 May 2025 20:20:45 +0900 Modified Mon, 08 Dec 2025 08:41:47 +0900
760 Words 3 min

MySQL에서 Slow Query(슬로우 쿼리) 를 모니터링하는 것은 성능 최적화를 위한 중요한 작업입니다. 다음은 슬로우 쿼리를 모니터링하는 일반적인 방법들입니다:


1. 슬로우 쿼리 로그 활성화하기

슬로우 쿼리를 기록하기 위해 MySQL 설정을 조정합니다.

방법 1: my.cnf 또는 my.ini 파일 수정

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1
  • slow_query_log: 슬로우 쿼리 로그 기능 활성화
  • slow_query_log_file: 로그 파일 위치
  • long_query_time: 몇 초 이상 걸리는 쿼리를 느린 쿼리로 간주할지 설정 (초 단위)
  • log_queries_not_using_indexes: 인덱스를 사용하지 않는 쿼리도 로그에 기록

설정 후 MySQL을 재시작해야 반영됩니다.

방법 2: MySQL 실행 중에 설정 변경

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
SET GLOBAL long_query_time = 1;
SET GLOBAL log_queries_not_using_indexes = 1;

주의: 이 설정은 MySQL 재시작 후 사라질 수 있으므로 my.cnf에도 반영해야 합니다.


2. 슬로우 쿼리 로그 확인

슬로우 쿼리는 설정된 로그 파일에 저장됩니다.

sudo tail -f /var/log/mysql/slow.log

또는 grep, awk 등으로 분석할 수 있습니다.


3. mysqldumpslow를 사용한 분석

MySQL에 포함된 mysqldumpslow 유틸리티로 로그를 요약할 수 있습니다.

mysqldumpslow -s t -t 10 /var/log/mysql/slow.log
  • -s: 정렬 기준 (t는 시간)
  • -t: 상위 N개의 쿼리
  • /var/log/mysql/slow.log: 로그 파일 경로

4. pt-query-digest를 사용한 고급 분석 (Percona Toolkit)

더 정교한 분석을 위해 pt-query-digest 도구를 사용합니다.

pt-query-digest /var/log/mysql/slow.log

이 도구는 다음을 포함한 자세한 통계를 제공합니다:

  • 빈도 높은 쿼리
  • 총 시간 및 평균 시간
  • 쿼리 템플릿
  • 사용자 및 호스트 정보

5. Performance Schema를 통한 실시간 모니터링

MySQL 5.6 이상에서는 performance_schema를 통해 실시간 쿼리 모니터링이 가능합니다.

예시:

SELECT * FROM performance_schema.events_statements_summary_by_digest
ORDER BY AVG_TIMER_WAIT DESC
LIMIT 10;

이 방식은 로그 기반 분석보다 실시간 성능 파악에 적합합니다.


6. 모니터링 도구 사용

  • MySQL Enterprise Monitor
  • Percona Monitoring and Management (PMM)
  • Grafana + Prometheus
  • Datadog, New Relic 등의 SaaS 기반 APM

이러한 도구들은 시각화, 알림 설정, 대시보드 등을 지원합니다.


요약

방법 용도 장점
슬로우 쿼리 로그 기본 분석 간단하고 설정이 쉬움
mysqldumpslow 요약 통계 설치 불필요
pt-query-digest 상세 분석 정밀 분석 가능
Performance Schema 실시간 모니터링 실시간 및 정량 분석
외부 도구 (PMM 등) 시각화/모니터링 관리 자동화 및 대시보드