MySQL

MySQL 점검시 확인 해야 할 리스트(Error Summary, Purge Lag)

minies 2024. 11. 30. 14:09
반응형

Performance_schema 확인

 

현재 자주 발생하는 오류 점검
USE performance_schema;

SELECT *
FROM performance_schema.events_errors_summary_by_account_by_error
WHERE SUM_ERROR_RAISED > 10 AND USER IS NOT NULL
ORDER BY SUM_ERROR_RAISED DESC\G

 

 

 

Performance_schema 자체 성능 점검
-- 컨슈머에 저장된 특정 이벤트의 수 또는 특정 메트릭의 최댓값 등의 세부 정보 확인 가능
show engine performance_schema status\G



-- sys 스키마 이용
SELECT 
    event_name AS memory_event,
    current_allocated AS current_memory_bytes,
    high_allocated AS peak_memory_bytes
FROM sys.memory_global_by_current_bytes
ORDER BY current_allocated DESC
LIMIT 10;


-- performance_schema 이용
SELECT 
    EVENT_NAME,
    COUNT_ALLOC AS total_alloc_count,
    SUM_ALLOC AS total_alloc_bytes,
    CURRENT_COUNT_USED AS current_alloc_instances,
    CURRENT_NUMBER_OF_BYTES_USED AS current_alloc_bytes
FROM performance_schema.memory_summary_global_by_event_name
ORDER BY CURRENT_NUMBER_OF_BYTES_USED DESC
LIMIT 10;

 

 

※ 자체 성능 점검이 필요한 이유는 이전 버전의 MySQL에서는 구현이 최적화 되지 않아 리소스를 많이 잡아먹었기 때문

 

 


 

 

Purge Lag

  • InnoDB의 Undo 로그를 처리하는 Purge 작업이 지연이 되는지 정상 처리되고 있는지를 나타내는 지표
  • 일반적으로 Purge Lag가 증가한다면 트랜잭션이 과도하게 오래 처리되고 있거나, I/O 성능이 갑자기 느려진 경우를 의미함

 

show status
-- InnoDB Engine 상태 확인
SHOW ENGINE INNODB STATUS\G

 

  • History list length
    • Undo 로그의 길이
    • 이 값이 커질수록 Purge Lag가 발생할 확률이 높아짐 

 

information_schema.innodb_metrics

 

SELECT name, count 
FROM information_schema.innodb_metrics
WHERE name LIKE 'purge%';

 

 

  • purge_n_pages_purged: Purge된 페이지 수.
  • purge_n_pending_purge_ops: 대기 중인 Purge 작업 수.

 

 


 

복제 상태 확인

 

show status

 

show slave status;

 

  • Seconds_Behind_Master : 복제 지연이 발생하는 시간 (초 단위)
    • 0보다 큰 값이 되면 복제 지연이 일어나고 있다는 증거
    • NULL은 slave가 master를 읽고 있지 않거나 연동이 안되어 있을 경우 발생

 

복제 지연이 발생할 경우 현재 processlist로 돌아가는 세션을 확인하고 error log 확인 필요

 

반응형