dead tuple이 안 줄 때 xmin horizon 추적하기
n_dead_tup이 쌓이기만 하는 PostgreSQL 테이블에서 VACUUM VERBOSE의 'dead but not yet removable'을 읽고, pg_stat_activity의 backend_xid와 backend_xmin을 따라가 기준선을 붙잡은 트랜잭션을 찾은 기록이다.
백업, 복구, 모니터링, 데이터베이스 도구 사용기
n_dead_tup이 쌓이기만 하는 PostgreSQL 테이블에서 VACUUM VERBOSE의 'dead but not yet removable'을 읽고, pg_stat_activity의 backend_xid와 backend_xmin을 따라가 기준선을 붙잡은 트랜잭션을 찾은 기록이다.
long_query_time=0으로 모든 쿼리를 기록할 때 기존 연결이 걸리는 함정, log_queries_not_using_indexes의 로그 폭주, pt-query-digest에서 Response time 비중과 Rows examine 비율을 읽는 법을 겪은 일로 정리했다.
pg_stat_statements에서 평균 시간이 아니라 total_exec_time과 호출 수로 정렬해야 하는 이유를 예시 숫자로 보여 주고, shared_blks_read 비율, 통계 리셋 주기, 쿼리 정규화 때문에 생기는 착시를 실무 기준으로 다룬다.