젠 토토는 도구입니다 시스템의 타이밍 오버 헤드를 측정하고 시스템 시간은 결코 뒤로 움직이지 않습니다. 수집이 느린 시스템 타이밍 데이터가 덜 정확하지 않을 수 있습니다설명 분석결과.
젠 토토다음 명령 줄 옵션 :
테스트 기간을 몇 초 만에 지정합니다. 기간이 길어집니다 약간 더 나은 정확도가 있고 문제를 발견 할 가능성이 높습니다. 시스템 시계가 뒤로 이동하면. 기본 테스트 기간 3 초입니다.
인쇄젠 토토버전 및 종료.
도움말 표시젠 토토명령 줄 인수 및 종료.
좋은 결과는 가장 ( 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)로 해결합니다.
쿼리 executor가 사용 설명서를 실행 중일 때분석, 개별 작업은 다음과 같이 시행됩니다 요약을 보여줍니다. 시스템의 오버 헤드 일 수 있습니다 로 행을 계산하여 점검PSQL프로그램 :
generate_series (1,100000)에서 선택 *으로 테이블 t를 작성합니다. \타이밍 t에서 count (*)를 선택하십시오. t;에서 선택한 수 (*)를 분석하십시오.
i7-860 시스템은 9.8ms에 카운트 쿼리를 실행합니다. 그만큼분석버전은 16.6ms, 각 처리는 10 만 행 이상입니다. 6.8ms 차이 행당 타이밍 오버 헤드가 68ns, 약 2 배 젠 토토은 그럴 것이라고 추정했다. 상대적으로 작습니다 오버 헤드 금액 거의 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를 사용할 수 있습니다. 부정확 한 것으로 알려진 상황에서도
High Precision Event Timer (HPET)는 선호되는 타이머입니다. 사용 가능한 시스템 및 TSC가 정확하지 않습니다. 타이머 칩 자체는 최대 100 나노초를 허용하도록 프로그래밍 가능합니다. 해상도이지만 시스템에서 많은 정확성을 보지 못할 수도 있습니다. 시계.
ACPI (Advanced Configuration and Power Interface) 제공 a Linux가 ACPI_PM으로 언급하는 전원 관리 (PM) 타이머. ACPI_PM에서 파생 된 시계는 300 나노본을 제공합니다. 해결.
이전 PC 하드웨어에 사용되는 타이머는 8254 프로그램이 포함되어 있습니다. 간격 타이머 (PIT), 실시간 시계 (RTC), 고급 프로그래밍 가능한 인터럽트 컨트롤러 (APIC) 타이머 및 사이클론 시간제 노동자. 이 타이머는 밀리 초의 해상도를 목표로합니다.
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | PostgreSQL : 문서 : 9.3 : 사설 토토 |
PG_TEST_FSYNC | up | pg_upgrade |