Debugging slow PostgreSQL queries

Ellie Huxtable

느린 PostgreSQL 쿼리 디버깅

원문은 Ellie Huxtable님이 에 게재했습니다. 이 블로그 구독하기

오늘 아침 가끔 발생하는 지연 시간 스파이크의 원인을 파악하려 했다. 느린 쿼리 때문에 최적화가 필요할 것 같았는데, 확인하려면 슬로우 쿼리 로깅을 활성화해야 했다.

PostgreSQL에서 100ms 이상 걸리는 모든 쿼리를 로그로 남기고 싶다면 설정 파일에 다음을 추가하면 된다.

log_min_duration_statement = 100

그런 다음 다음 명령어로 PostgreSQL 설정을 다시 로드하면 된다.

select pg_reload_conf();

서버를 재시작할 필요는 없다!

그 밖에 다음 옵션들도 도움이 될 수 있다.

# Log all statements, not just the slow ones
# This may be very chatty, so make sure your log partition doesn't fill up
log_statement = all/ddl/none
# Log durations alongside statements
log_duration = on

이전 직장에서는 pganalyze가 PostgreSQL 성능 분석에 정말 훌륭하다는 걸 알게 됐다. 몇 가지 추가 설정 단계가 필요하고 유료이긴 하지만, PostgreSQL에 크게 의존하고 있다면 정말 추천한다!

그 밖에 PostgreSQL 설정 옵션을 찾아볼 때 내가 가장 즐겨 쓰는 자료는 postgresqlco.nf다. 사용 가능한 옵션들을 둘러보기에 좋고, 어떤 옵션이 재시작을 필요로 하는지도 바로 확인할 수 있어 편리하다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글