본문

와탭모니터링
데이터베이스 성능 관리를 위한 필수 모니터링 지표 체크하기

작성일 2023년 07월 17일

들어가며

데이터베이스 성능 관리는 데이터베이스의 성능을 실시간으로 감시하고 문제점을 진단, 분석하여 문제가 되는 SQL을 튜닝하고 적용하여 문제점이 해결되었는지 실시간으로 감시하는 작업입니다. 이런 일련의 작업을 위해 데이터베이스의 어떤 지표들을 확인해야 하는지 소개하겠습니다.


1. 인프라 리소스 정보

데이터베이스에서 수행하는 모든 작업은 데이터베이스와 관련된 리소스에 영향을 미칩니다. 인프라 리소스 메트릭스는 현재 및 잠재적인 성능 문제를 파악할 수 있게 해줍니다. 장기간 리소스 지표를 분석하면 용량 계획에 근거 자료가 됩니다.

  • 데이터베이스 프로세스에서 사용된 CPU 시간 비율
  • 사용 가능한 메모리
  • 사용 가능한 디스크 공간
  • 대기 중인 I/O를 위한 디스크 큐
  • 가상 메모리 사용 비율
  • 인바운드 및 아웃바운드 트래픽을 위한 네트워크 대역폭
infra_info

인프라 지표의 허용 임계값을 초과하거나 미달하는 경우, 해당 수치를 데이터베이스 지표와 연관시키는 것이 좋습니다. 디스크가 가득 차거나 네트워크가 포화 상태인 것과 같은 하드웨어 또는 네트워크 관련 이벤트가 쿼리 성능을 저하시킬수 있기 때문입니다.

2. 가용성

데이터베이스를 사용할 수 있고 액세스할 수 있는지 확인해야 합니다. 데이터베이스의 가용성 확인을 위해 아래와 같은 정보를 확인합니다.

  • Ping 또는 Telnet과 같은 일반적인 프로토콜을 사용하는 데이터베이스 접근성 확인
  • 데이터베이스 엔드 포인트 및 포트의 접근성 (예: MySQL의 경우 3306, PostgreSQL의 경우 5432 등)
  • 마스터 노드에 대한 장애 조치 이벤트 또는 다중 노드 클러스터의 Slave/Peer 노드에 대한 업그레이드 이벤트

3. 처리량

처리량은 이용 중인 데이터베이스가 얼마만큼의 일을 수행하고 있는지 성능을 위해 측정해야 필수 항목입니다. 데이터베이스 플랫폼마다 처리량을 나타내는 지표는 다르지만 일반적으로 아래와 같은 항목을 확인합니다.

  • 데이터베이스 접속 대기 시간
  • 활성 데이터베이스 연결 수
  • 진행 중인 조회 쿼리 수
  • 진행 중인 Insert, Update, Delete 쿼리 수
  • 조회 쿼리를 완료하는데 걸리는 평균 시간
  • Insert, Update, Delete 쿼리를 완료하는 데 걸리는 평균 시간
  • Master와 Slave 간의 데이터 복제 지연 시간
  • 완료된 트랜잭션 수
  • 데이터 및 트랜잭션 로그 크기의 증가 비율
  • 인메모리 데이터 캐시에 액세스한 횟수의 백분율
  • 사용된 힙 메모리
dbx_1

4. 성능

처리량과 마찬가지로 성능 카운터는 데이터베이스마다 다릅니다. 주요 성능 지표는 다음과 같습니다

  • 현재 대기 중이거나 차단된 읽기 또는 쓰기 쿼리의 수
  • 디스크 기반 가상 메모리에 액세스한 횟수 비율
  • 데이터베이스 잠금 시간 초과 횟수
  • 설정된 임계값보다 느리게 실행되는 쿼리 수
  • 오래된 통계 또는 사용할 수 없는 인덱스에 대해 발생한 경고 수
  • 애플리케이션 추적
db_performance

5. Batch 작업(스케줄 업무)

데이터베이스는 종종 반복적인 작업을 예약된 '작업'으로 실행합니다. Microsoft SQL Server나 Oracle과 같은 일부 시스템에는 작업 예약 기능이 내장되어 있는 반면, 다른 시스템에서는 cron 또는 타사 스케줄러를 사용합니다. 예약된 작업의 몇 가지 예는 다음과 같습니다:

  • 데이터베이스 백업
  • 데이터베이스 클리닝, 재색인, 통계 분석 및 업데이트, 데이터베이스 무결성 검사, 로그 순환, 압축 등과 같은 데이터베이스 유지 관리 작업
  • 야간 데이터 로드 및 내보내기, 아카이빙 등과 같은 애플리케이션 별 작업

6. 로그

데이터베이스에는 로그를 자체적으로 기록합니다. 이 로그는 하나 이상의 실제 파일로 구성될 수 있습니다. 모니터링 도구는 이러한 로그를 수집, 구문 분석, 저장하고 로그를 통해 노출되는 이벤트로부터 메트릭과 대시보드를 생성할 수 있어야 합니다. 로그에는 데이터베이스 시스템 상태 정보가 포함될 수 있으므로 로그 관리는 데이터베이스 모니터링의 핵심 요구 사항 중 하나입니다.

  • 데이터베이스 시스템 이벤트(시작, 종료, 오류 등)
  • 모든 사용자 및 시스템 쿼리
  • 예약된 작업의 출력
db_log

일부 데이터베이스는 기본적으로 자체 모니터링 도구를 함께 제공하기도 하고 DBA가 자체 개발한 스크립트로 성능 메트릭을 수집하고 자체 대시보드를 구성해서 모니터링 하기도 합니다.

애플리케이션 성능 모니터링(APM) 에서도 데이터베이스 지표를 취합하기도 합니다.

로그, 애플리케이션, 데이터베이스 등을 모니터링 하기 위해 개별 솔루션을 사용하기도 하지만  하나의 도구만 선택하면 모니터링이 훨씬 쉬워집니다.

  1. 위에서 설명한 핵심 데이터베이스 메트릭 및 로그를 수집하고 저장
  2. 고객 측에서 많은 유지 관리 (예: 모니터링 서버 자체의 디스크 관리 등의 인프라 관리)
  3. 경량 에이전트를 사용하여 데이터 수집
  4. 적극적으로 유지 관리되는 다양한 플러그인 및 후크 보유
  5. 로그 이벤트와 데이터베이스, OS 등의 성능 메트릭을 상호 연관
  6. 이벤트 또는 쿼리 드릴다운
  7. 메트릭과 로그가 포함된 대시보드 생성
  8. 성능 임계값을 초과할 때 경보 발령
  9. Telegram, Slack 같은 메신저 채널을 통해 자동 알림 보내기

마치며

지금까지 데이터베이스 성능 관리를 위한 필수로 봐야하는 지표를 소개했습니다. 통합 모니터링 플랫폼을 통해 데이터베이스 성능 관리 뿐만 아니라 데이터베이스에서 생성하는 로그, 애플리케이션까지 성능 관리를 하는 것을 추천해 드립니다.

데이터베이스 지표 확인, 시작은?
와탭 가입하고 데이터베이스 모니터링 시작하기
오은미[email protected]
Marketing TeamTeam Leader

지금 바로
와탭을 경험해 보세요.