12.5. 하드웨어 클럭 소스를 읽는 비용 비교
시스템의 시계 속도를 비교할 수 있습니다. TSC에서 읽는 것은 프로세서에서 레지스터를 읽는 것과 관련이 있습니다. HPET 시계에서 읽는 것은 메모리 영역을 읽는 것입니다. TSC에서 읽는 것이 더 빠르기 때문에 초당 수십만 개의 메시지를 타임스탬프할 때 상당한 성능 이점을 제공합니다.
사전 요구 사항
- 시스템에 대한 root 권한이 있습니다.
-
clock_timing프로그램은 시스템에 있어야 합니다. 자세한 내용은 clock_timing 프로그램을 참조하십시오.
절차
clock_timing프로그램이 저장되는 디렉터리로 변경합니다.# cd clock_test시스템에서 사용 가능한 클럭 소스를 확인합니다.
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource tsc hpet acpi_pm이 예에서 시스템에서 사용 가능한 클럭 소스는
TSC,HPET및ACPI_PM입니다.현재 사용된 클럭 소스를 확인합니다.
# cat /sys/devices/system/clocksource/clocksource0/current_clocksource tsc이 예에서 시스템의 현재 클럭 소스는
TSC입니다../
clock_timing프로그램과 함께시간유틸리티를 실행합니다. 출력에는 클럭 소스를 10만 번 읽는 데 필요한 기간이 표시됩니다.# time ./clock_timing real 0m0.601s user 0m0.592s sys 0m0.002s이 예제에서는 다음 매개변수를 보여줍니다.
-
Real- 프로세스가 종료될 때까지 프로그램 호출부터 시작된 총 시간입니다.실제에는 사용자 및 커널 시간이 포함되며 일반적으로 마지막 두 시간의 합계보다 큽니다. 이 프로세스가 우선 순위가 높은 애플리케이션 또는 하드웨어 인터럽트(IRQ)와 같은 시스템 이벤트에 의해 중단되는 경우 이 시간도실제대기에서 계산됩니다. -
사용자- 프로세스에서 커널 개입이 필요하지 않은 작업을 수행하는 데 소비된 시간입니다. -
sys- 사용자 프로세스에 필요한 작업을 수행하는 동안 커널에서 보낸 시간입니다. 이러한 작업에는 파일 열기, 읽기 및 파일 또는 I/O 포트, 메모리 할당, 스레드 생성 및 네트워크 관련 활동이 포함됩니다.
-
테스트할 다음 클럭 소스의 이름을
/sys/devices/system/clocksource/clocksource0/current_clocksource파일에 작성합니다.# echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource이 예에서는 현재 클럭 소스가
HPET로 변경됩니다.- 사용 가능한 모든 시계 소스에 대해 4단계와 5단계를 반복합니다.
- 사용 가능한 모든 클럭 소스에 대해 단계 4의 결과를 비교합니다.