2025 년 7 월 17 일 : | 윈 토토 : 윈 토토 18 베타
이 문서는 지원되지 않는 버전의 젠 토토을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다스포츠 토토 결과 PostgreSQL : 문서 : 17 : PG_TEST_T버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

pg_test_timing

이름

PG_TEST_TIMING- 시간 측정 오버 헤드

시놉시스

pg_test_timing[옵션...]

설명

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

옵션

PG_TEST_TIMING다음 명령 줄 옵션 :

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

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

-v
-버전

인쇄PG_TEST_TIMING버전 및 종료.

-?
-help

도움말 표시PG_TEST_TIMING명령 줄 인수 및 종료.

usage

결과 해석

좋은 결과는 가장 ( 90%) 개별 젠 토토 호출을 보여줍니다 1 마이크로 초 미만을 취하십시오. 루프 당 평균 오버 헤드가됩니다 100 나노 초 미만의 낮은. 이 예는 인텔의 예입니다 TSC 클록 소스를 사용하는 I7-860 시스템은 우수한 것으로 나타났습니다 성능:

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

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

집행자 젠 토토 오버 헤드 측정

Query Executor가 사용 설명서를 실행할 때분석 설명, 개별 작업은 다음과 같이 시행됩니다 요약을 보여줍니다. 시스템의 오버 헤드 일 수 있습니다 로 행을 계산하여 점검PSQL프로그램 :

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

i7-860 시스템은 9.8ms에서 카운트 쿼리를 실행합니다. 그만큼분석버전은 16.6ms, 각 처리는 10 만 행 이상입니다. 6.8ms 차이 행당 타이밍 오버 헤드가 68ns, 약 2 배 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 %
     1 27.84870 1155682 
     2 72.05956 2990371 
     4 0.07810 3241  
     8 0.01357 563  
    16 0.00007 3

이 구성에서 샘플설명 분석위의 115.9ms가 소요됩니다. 그것은 1061 NSEC의 젠 토토입니다 오버 헤드, 다시 측정되는 작은 배수 이 유틸리티. 많은 젠 토토 오버 헤드는 실제 쿼리를 의미합니다 그 자체는 시간이 조금만 걸리는 부분만을 취하고 있습니다. 대부분은 대신 오버 헤드로 소비됩니다. 이것에서 구성, 모든분석총계 많은 시간이 지남에 따라 많은 시간이 부풀려질 것입니다 젠 토토 오버 헤드.

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

# dmesg | Grep "Timecounter"
TimeCounter "ACPI-FAST"주파수 3579545 Hz 품질 900
TimeCounter "i8254"주파수 1193182 Hz 품질 0
시간마다 10.000msec마다 진드기
TimeCounter "TSC"주파수 2531787134 Hz 품질 800
# sysctl kern.timecounter.hardware = tsc
kern.timecounter.hardware : acpi -fast- 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 %
     1 90.23734 27694571 
     2 9.75277 2993204  
     4 0.00981 3010  
     8 0.00007 22  
    16 0.00000 1  
    32 0.00000 1

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

정확한 타이밍 정보 수집은 일반적으로 수행됩니다 다양한 수준의 정확도를 가진 하드웨어 시계를 사용하는 컴퓨터. 일부 하드웨어를 사용하면 운영 체제가 시스템 시계를 통과 할 수 있습니다. 프로그램에 거의 직접 시간. 시스템 시계도 가능합니다 단순히 타이밍 인터럽트를 제공하는 칩에서 파생 된 알려진 시간 간격으로주기적인 진드기. 두 경우 모두 운영 체제 커널은 세부. 그러나 그 시계 소스의 정확성과 얼마나 빨리 결과를 반환 할 수 있습니다. 결과는 기본 하드웨어에 따라 다릅니다.

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

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

새로운 운영 체제는 알려진 TSC 문제를 확인할 수 있습니다. 느리게 더 안정적인 시계 소스로 전환하십시오. 만약에 귀하의 시스템은 TSC 시간을 지원하지만 기본값은 없습니다. 정당한 이유 때문에 장애가됩니다. 그리고 일부 운영 체제는 그렇지 않을 수 있습니다 가능한 모든 문제를 올바르게 감지하거나 TSC를 사용할 수 있습니다. 부정확 한 것으로 알려진 상황에서도

고정밀 이벤트 타이머 (HPET)는 선호되는 타이머입니다. 사용 가능한 시스템 및 TSC가 정확하지 않습니다. 타이머 칩 자체는 최대 100 나노초를 허용하도록 프로그래밍 가능합니다. 해상도이지만 시스템에서 많은 정확성을 보지 못할 수도 있습니다. 시계.

ACPI (Advanced Configuration and Power Interface) 제공 a Linux가 ACPI_PM으로 언급하는 전원 관리 (PM) 타이머. ACPI_PM에서 파생 된 시계는 300 나노본을 제공합니다. 해결.

이전 PC 하드웨어에 사용되는 타이머는 8254 프로그램이 포함되어 있습니다. 간격 타이머 (PIT), 실시간 시계 (RTC), 고급 프로그래밍 가능한 인터럽트 컨트롤러 (APIC) 타이머 및 사이클론 시간제 노동자. 이 타이머는 밀리 초의 해상도를 목표로합니다.

저자

개미 AASMA