PG_TEST_TIMING - 타이밍 오버 헤드 측정
pg_test_timing
[옵션
...]
PG_TEST_TIMING는 시스템의 타이밍 오버 헤드를 측정하고 시스템 시간이 뒤로 움직이지 않음을 확인하는 도구입니다. 지정된 시간 동안 가능한 한 빨리 시스템 시계를 반복해서 읽은 다음 연속 시계 판독의 관찰 된 차이에 대한 통계를 인쇄합니다..
더 작은 (제로가 아님) 차이는 더 많은 시계 하드웨어와 시계 판독 값을 수집하기위한 오버 헤드를 모두 암시하기 때문에 더 좋습니다. 타이밍 데이터를 수집하는 데 속도가 느린 시스템은 덜 정확하게 제공 할 수 있습니다분석
결과.
이 도구는 또한를 결정하는 데 도움이됩니다.track_io_timing
구성 매개 변수는 유용한 결과를 생성 할 가능성이 높습니다.
pg_test_timing다음 명령 줄 옵션을 수락합니다 :
-d지속 시간
----- 시간 =지속 시간
테스트 기간을 몇 초 만에 지정합니다. 기간이 길면 약간 더 나은 정확도를 제공하며 시스템 클록이 뒤로 이동하는 문제를 발견 할 가능성이 높습니다. 기본 테스트 기간은 3 초입니다.
-c컷오프
-cutoff =컷오프
정확한 관찰 된 타이밍 지속 시간 목록의 컷오프 백분율을 지정합니다 (즉, 한 판독 값에서 다음 읽기에서 시스템 클록 값의 변경). 가장 큰 관찰 기간이 항상 인쇄된다는 점을 제외하고는 실행 중량 백분율 이이 값에 도달하거나 초과하면 목록이 끝납니다. 기본 컷오프는 99.99입니다.
-v
-버전
인쇄pg_test_timing버전 및 종료.
-?
-help
도움말 표시pg_test_timing명령 줄 인수 및 종료.
첫 번째 출력 블록에는 4 개의 열이 있으며, 행은 타이밍 기간의 하나의 로그 2 (NS) 히스토그램을 보여줍니다 (즉, 연속 시계 판독 값의 차이). 이것은 클래식 LOG2 (n+1) 히스토그램이 0이 아니었기 때문에 값 1에서 시작하여 0을 개별적으로 계산 한 다음 Log2 (NS)로 전환합니다.
열은 다음과 같습니다.
출력의 두 번째 블록이 더 자세하게 진행되어 정확한 타이밍 차이를 보여줍니다. 간결성의 경우이 목록은 Running-Sum 백분율이 사용자가 선택 가능한 컷오프 값을 초과하면 삭감됩니다. 그러나 가장 큰 관찰 된 차이는 항상 표시됩니다.
아래의 예는 타이밍 루프의 99.99%가 8 ~ 31 나노초 사이에 걸렸으며 최악의 경우는 32768에서 65535 나노 초 사이에 있었음을 보여줍니다. 두 번째 블록에서, 우리는 일반적인 루프 시간이 16 나노초이고, 판독 값은 전체 나노초 정밀도를 갖는 것으로 보인다..
3 초 동안 타이밍 오버 헤드 테스트. 오버 헤드를 포함한 평균 루프 시간 : 16.40 ns 타이밍 기간의 히스토그램 : <= 총 달리기 % 수의 ns % 0 0.0000 0.0000 0 1 0.0000 0.0000 0 3 0.0000 0.0000 0 7 0.0000 0.0000 0 15 4.5452 4.5452 8313178 31 95.4527 99.9979 174581501 63 0.0001 99.9981 253 127 0.0001 99.9982 165 255 0.0000 99.9982 35 511 0.0000 99.9982 1 1023 0.0013 99.9994 2300 2047 0.0004 99.9998 690 4095 0.0000 99.9998 9 8191 0.0000 99.9998 8 16383 0.0002 100.0000 337 32767 0.0000 100.0000 2 65535 0.0000 100.0000 1 최대 99.9900%의 타이밍 지속 시간을 관찰했습니다. 총 달리기 % 수의 NS % 15 4.5452 4.5452 8313178 16 58.3785 62.9237 106773354 17 33.6840 96.6078 61607584 18 3.1151 99.7229 5697480 19 0.2638 99.9867 482570 20 0.0093 99.9960 17054 ... 38051 0.0000 100.0000 1