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 확인 필요
반응형