본문으로 건너뛰기
timing_clock_source

timing_clock_source

버전기본값context타입
19autosuperuserenum

시간 측정에 OS system clock을 쓸지 CPU 전용 명령을 쓸지 선택한다. PostgreSQL 19(beta)에서 추가된 파라미터로, 기본값은 auto다.

값은 세 가지다. auto는 지원되는 x86-64 CPU에서 TSC clock source를 자동 선택하고, 아니면 OS system clock을 쓴다. system은 항상 OS system clock으로 측정하고, tsc는 x86-64의 RDTSC/RDTSCP 같은 CPU 명령으로 측정한다. TSC(Time-Stamp Counter) clock source는 OS clock을 읽는 것보다 오버헤드가 낮아, EXPLAIN ANALYZE처럼 시간 측정이 잦은 작업에서 실제 실행 시간 위에 얹히는 측정 오차를 줄여준다. 더 높은 정밀도가 필요한 측정에는 CPU 명령 재배치로 인한 부정확성을 피하는 RDTSCP 명령이 쓰인다.

오래된 x86-64 CPU나 다른 아키텍처에서는 TSC clock source가 지원되지 않으며, TSC를 에뮬레이션하는 시스템에서는 system clock보다 느릴 수 있어 권장되지 않는다. superuser만 변경할 수 있고, 쿼리 실행 중에 바꾸면 구간 시간이 크게 튀거나 음수로 나올 수 있으므로 피해야 한다.

운영 노트: 어느 clock source가 적합한지 애매하면 pg_test_timing 유틸리티로 TSC 가용성과 측정 오버헤드를 먼저 확인한다. 가상화 환경은 TSC가 에뮬레이션일 수 있으니 특히 확인이 필요하다.

출처: PostgreSQL 19 문서