이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다스포츠 토토 결과 PostgreSQL : 문서 : 17 : PG_TEST_TIMEING버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

pg_test_timing

이름

PG_TEST_TIMING- 토토 측정 오버 헤드

시놉시스

pg_test_timing [옵션...]

설명

PG_TEST_TIMING도구입니다 시스템의 토토 오버 헤드를 측정하고 시스템 시간은 결코 뒤로 움직이지 않습니다. 느린 시스템 토토 데이터 수집이 덜 정확하게 줄 수 있습니다분석결과.

옵션

pg_test_timing다음 명령 줄 옵션 :

-d지속 시간
-rature =지속 시간

테스트 기간을 몇 초 만에 지정합니다. 더 길게 지속 시간은 약간 더 나은 정확도를 제공하며 더 많습니다 시스템 시계 이동의 문제를 발견 할 가능성이 높습니다 뒤로. 기본 테스트 기간은 3 초입니다.

-v
-버전

인쇄pg_test_timing버전 및 종료.

-?
-help

도움말 표시pg_test_timing명령 줄 인수, 그리고 출구.

usage

결과 해석

좋은 결과는 가장 ( 90%) 개별 토토을 보여줍니다 통화는 1 마이크로 초 미만입니다. 루프 당 평균 오버 헤드 100 나노초 미만으로 더 낮습니다. 이 예제는 an TSC 클럭 소스를 사용하는 Intel i7-860 시스템이 우수한 것으로 나타났습니다. 성능:

3 초 동안 토토 오버 헤드 테스트.
오버 헤드 포함 루프 시간 : 35.96 NSEC
토토 기간의 히스토그램 :
   <USEC : 카운트 퍼센트
       16 : 2 0.00000%
        8 : 13 0.00002%
        4 : 126 0.00015%
        2 : 2999652 3.59518%
        1 : 80435604 96.40465%

루프 당 다른 장치가 사용됩니다. 히스토그램보다. 루프는 몇 가지 이내에 해상도를 가질 수 있습니다 나노 초 (NSEC), 개별 토토 호출 만 할 수 있습니다 1 마이크로 초 (USEC)로 해결합니다.

집행자 토토 오버 헤드 측정

쿼리 executor가 사용 설명서를 실행 중일 때분석 설명, 개별 작업 요약을 보여줄뿐만 아니라 시간이 정해져 있습니다. 당신의 오버 헤드 시스템을로 계산하여 시스템을 점검 할 수 있습니다.PSQL프로그램 :

generate_series (1,100000)에서 선택 *으로 테이블 t를 작성합니다.
\타이밍
t에서 count (*)를 선택하십시오.
t;에서 선택한 수 (*)를 분석하십시오.

i7-860 측정 된 시스템은 9.8ms에서 카운트 쿼리를 실행합니다. 동안분석버전 16.6ms가 걸리며 각 처리는 10 만 행 이상입니다. 그 6.8 MS 차이는 행당 타이밍 오버 헤드가 68ns, 약 PG_TEST_TIMING가 추정 한 두 번. 그조차도 상대적으로 적은 양의 오버 헤드가 완전히 시간을 내고 있습니다. 카운트 명세서는 거의 70% 더 오래 걸립니다. 더 실질적으로 쿼리, 타이밍 오버 헤드는 덜 문제가됩니다.

시간 소스 변경

일부 최신 Linux 시스템에서는 시계 소스는 언제든지 타이밍 데이터를 수집하는 데 사용됩니다. 두 번째 예제는 다음으로 전환 할 수있는 둔화를 보여줍니다 ACPI_PM 시간 소스는 위의 빠른 결과 :

# cat/sys/devices/system/clocksource/clocksource0/used_clocksource
TSC HPET ACPI_PM
# echo acpi_pm/sys/devices/system/clocksource/clocksource0/current_clocksource
# pg_test_miting
오버 헤드 포함 루프 시간 : 722.92 NSEC
토토 기간의 히스토그램 :
   <USEC : 카운트 퍼센트
       16 : 3 0.00007%
        8 : 563 0.01357%
        4 : 3241 0.07810%
        2 : 2990371 72.05956%
        1 : 1155682 27.84870%

이 구성에서 샘플분석위의 115.9ms가 걸립니다. 그게 1061 NSEC의 타이밍 오버 헤드, 다시 작은 배수 이 유틸리티에 의해 직접 측정됩니다. 그 많은 타이밍 오버 헤드 실제 쿼리 자체가 약간의 일부만 시간에 대한 설명은 대부분 소비되고 있습니다. 대신 오버 헤드. 이 구성에서 모든분석 설명많은 시간이 포함 된 총계 작업은 토토에 의해 크게 팽창 될 것입니다 간접비.

freebsd는 또한 시간 소스를 즉시 변경할 수 있습니다. 부팅 중에 선택한 타이머에 대한 정보를 기록합니다.

dmesg | Grep "Timecounter"
sysctl kern.timecounter.hardware = tsc

다른 시스템은 시간 소스를 설정할 수 있습니다. 신병. 구형 Linux 시스템에서 "클럭"커널 설정은 이런 종류의 변화를 만드는 유일한 방법. 그리고 심지어 조금 더 최근에는 시계 소스에 대해 볼 수있는 유일한 옵션은 "Jiffies". Jiffies는 오래된 Linux 소프트웨어 시계입니다 뒷받침 될 때 좋은 해결책을 가질 수있는 구현 이 예에서와 같이 충분한 타이밍 하드웨어로 :

$ cat/sys/devices/system/clocksource/clocksource0/used_clocksource
Jiffies
$ dmesg | Grep Time.c
Time.c : 3.579545 MHz 벽 PM PM GTOD PIT/TSC 타이머 사용
Time.c : 2400.153 MHz 프로세서 감지.
$ pg_test_miting
3 초 동안 토토 오버 헤드 테스트.
루프 오버 헤드를 포함한 토토 시간당 : 97.75 ns
토토 기간의 히스토그램 :
   <USEC : 카운트 퍼센트
       32 : 1 0.00000%
       16 : 1 0.00000%
        8 : 22 0.00007%
        4 : 3010 0.00981%
        2 : 2993204 9.75277%
        1 : 27694571 90.23734%

시계 하드웨어 및 토토 정확도

정확한 토토 정보 수집은 일반적으로 수행됩니다 다양한 수준의 하드웨어 시계를 사용하는 컴퓨터 정확성. 일부 하드웨어를 사용하면 운영 체제가 통과 할 수 있습니다 시스템 시계 시간은 거의 프로그램에 직접 직접. 시스템 시계 단순히 토토을 제공하는 칩에서 파생 될 수 있습니다. 알려진 시간 간격으로주기적인 진드기, 인터럽트. ~ 안에 어느 경우, 운영 체제 커널은 시계 소스를 제공합니다 이 세부 사항을 숨 깁니다. 그러나 해당 시계 소스의 정확도 그리고 결과를 얼마나 빨리 반환 할 수 있는지 기본 하드웨어

부정확 한 시간을 유지하면 시스템 불안정성이 발생할 수 있습니다. 시계 소스의 변경 사항을 매우 신중하게 테스트하십시오. 운영 시스템 기본값은 때때로 신뢰성을 선호하기 위해 만들어집니다 최고의 정확도. 가상 머신을 사용하는 경우보십시오 권장 시간 소스로 호환됩니다. 가상 하드웨어는 타이머를 모방 할 때 추가적인 어려움에 직면하고 그리고 종종 제안하는 운영 체제 설정이 있습니다. 공급 업체.

타임 스탬프 카운터 (TSC) 클럭 소스가 가장 현재 세대 CPU에서 사용할 수있는 정확한 것입니다. 그것은입니다 지원되는 시스템 시간을 추적하는 선호하는 방법 운영 체제와 TSC 시계는 신뢰할 수 있습니다. 거기 있습니다 TSC가 정확한 타이밍을 제공하지 못하는 몇 가지 방법 소스, 신뢰할 수 없게 만듭니다. 이전 시스템에는 TSC가있을 수 있습니다 CPU 온도에 따라 다른 클럭 타이밍에 사용할 수 없습니다. 일부 오래된 멀티 코어에서 TSC를 사용하려고합니다 CPU는보고 된 시간을 일치하지 않을 수 있습니다 다중 코어. 이로 인해 거꾸로 이동하는 시간이 발생할 수 있습니다 문제 문제이 프로그램이 확인합니다. 그리고 최신 시스템조차도 정확한 TSC 타이밍을 매우 공격적으로 제공하지 못할 수 있습니다. 전원 절약 구성.

새로운 운영 체제는 알려진 TSC 문제를 확인할 수 있습니다. 그리고 더 느리고 안정적인 시계 소스로 전환 할 때 본다. 시스템이 TSC 시간을 지원하지만 기본값이없는 경우 그것은 좋은 이유 때문에 비활성화 될 수 있습니다. 그리고 일부 운영 시스템은 가능한 모든 문제를 올바르게 감지하지 못하거나 알려진 것으로 알려진 상황에서도 TSC를 사용할 수 있습니다. 부정확 한.

고정밀 이벤트 타이머 (HPET)는 선호되는 타이머입니다. 사용 가능한 시스템과 TSC가 정확하지 않은 시스템에서. 그만큼 타이머 칩 자체는 최대 100 나노초를 허용하도록 프로그래밍 가능합니다. 해상도이지만 당신은 당신의 시스템 시계.

ACPI (Advanced Configuration and Power Interface) 제공 a Linux가 언급하는 전원 관리 (PM) 타이머 ACPI_PM. ACPI_PM에서 파생 된 시계는 기껏해야 제공됩니다 300 나노초 해상도.

8254를 포함한 이전 PC 하드웨어에 사용되는 타이머 프로그래밍 가능한 인터벌 타이머 (PIT), 실시간 시계 (RTC), APIC (Advanced Programmable 인터럽트 컨트롤러) 타이머, 그리고 사이클론 타이머. 이 타이머는 밀리 초를 목표로합니다 해결.

저자

개미 AASMA