19.9. 실시간 통계

19.9.1. 쿼리 및 인덱스 통계 수집기
19.9.2. 통계 모니터링

19.9.1. 쿼리 및 인덱스 통계 수집기

이 매개 변수는 서버 차원(server-wide)의 통계 수집 기능을 제어한다. 통계 수집이 활성화되면 생성된 데이터는 pg_statpg_statio 계열 시스템 뷰를 통해 액세스할 수 있다. 자세한 내용은 27장을 참조 바란다.

track_activities (boolean)

각 세션에서 현재 실행 중인 명령의 실행이 시작될 때 해당 명령에 대한 정보 수집을 활성화한다. 이 매개 변수의 기본값은 on이다. 활성화된 경우에도 이 정보가 모든 사용자에게 보이는 것은 아니며, 슈퍼유저 및 리포트되는 세션의 소유자에게만 표시되므로 보안 위험을 나타내서는 안 된다. 슈퍼유저만 이 설정을 변경할 수 있다.

track_activity_query_size (integer)

각각의 활성 세션에 대해 현재 실행 중인 명령을 추적하기 위해 pg_stat_activity.query 필드에 사용할 메모리 크기를 지정한다. 설정값에 단위를 지정하지 않으면 바이트로 간주한다. 기본값은 1024바이트다. 이 매개 변수는 서버 시작 시에만 설정 가능하다.

track_counts (boolean)

데이터베이스 작업에 대한 통계 수집을 활성화한다. autovacuum은 수집된 정보를 필요로 하므로 이 매개 변수의 기본값은 on이다. 슈퍼유저만 이 설정을 변경할 수 있다.

track_io_timing (boolean)

데이터베이스 I/O 호출의 타이밍을 활성화한다. 운영 체제에 현재 시간을 반복해서 쿼리함으로써 일부 플랫폼에서는 상당한 오버헤드가 발생되므로 이 매개 변수는 기본적으로 off이다. 사용자 시스템에서 타이밍 오버헤드를 측정하기 위해 pg_test_timing 도구를 사용할 수 있다. I/O 타이밍 정보는 BUFFERS 옵션이 사용되는 경우 및 pg_stat_statements에 의해 EXPLAIN 출력에서 pg_stat_database 뷰에 표시된다. 슈퍼유저만 이 설정을 변경할 수 있다.

track_functions (enum)

함수 호출 횟수 및 사용된 시간의 추적을 활성화한다. 프로시저 언어 함수 all만 추적하기 위해 pl를 지정하면 SQL 및 C 언어 함수도 추적한다. 기본값은, 함수 통계 추적을 비활성화하는 none이다. 슈퍼유저만 이 설정을 변경할 수 있다.

참고

호출 쿼리에 간단하게 inlined되는 SQL 언어 함수는 이 설정과 무관하게 추적되지 않는다.

stats_temp_directory (string)

임시 통계 데이터를 저장할 디렉터리를 설정한다. 디렉터리에 대한 상대 경로이거나 절대 경로일 수 있다. 기본값은 pg_stat_tmp이다. RAM 기본 파일 시스템에서 이것을 지정하면 물리적 I/O 요구 사항이 줄어들고 성능 개선으로 이어질 수 있다. 이 매개 변수는 postgresql.conf 파일 또는 서버 커맨드 라인에서만 설정 가능하다.

19.9.2. 통계 모니터링

log_statement_stats (boolean)
log_parser_stats (boolean)
log_planner_stats (boolean)
log_executor_stats (boolean)

각 쿼리에 대해 각 모듈의 성능 통계를 서버 로그에 출력한다. 이것은 Unix getrusage() 운영 체제 기능과 유사한 대략적인 프로파일링 방법이다. log_statement_stats는 총 문 통계를 리포트하고, 그 외의 것은 모듈별 통계를 알려준다. log_statement_stats는 모듈별 옵션과 함께 활성화될 수 없다. 이 옵션은 모두 기본적으로 비활성화된다. 슈퍼유저만 이 설정을 변경할 수 있다.