11장. RHEL for Real Time에서 timerlat를 사용하여 예약 대기 시간 측정

rtla-timerlat 툴은 timerlat tracer에 대한 인터페이스입니다. timerlat 추적기에서는 실시간 스레드의 가동 대기 시간을 찾습니다. timerlat tracer는 실시간 우선 순위를 사용하여 CPU당 커널 스레드를 생성하고 이러한 스레드가 주기적으로 타이머를 설정하여 잠자기 상태로 되돌아갑니다. 발생 시 timerlat 는 운영 체제 타이머 대기 시간을 디버깅하는 데 유용한 정보를 찾아 수집합니다. timerlat tracer는 출력을 생성하고 모든 활성화 시 다음 두 줄을 출력합니다.

  • timerlat tracer는 타이머 인터럽트 요청(IRQs) 처리기에 표시되는 타이머 대기 시간을 주기적으로 출력합니다. 스레드 활성화 전에 hardirq 컨텍스트에서 표시되는 첫 번째 출력입니다.
  • 두 번째 출력은 스레드의 타이머 대기 시간입니다. ACTIVATION ID 필드에는 각각의 스레드 실행에 인터럽트 요청(IRQs) 성능이 표시됩니다.

11.1. 스케줄링 대기 시간을 측정하도록 timerlat 추적기 구성

추적 시스템의 curret_tracer 파일에 timerlat 를 추가하여 timerlat 추적기를 구성할 수 있습니다. current_tracer 파일은 일반적으로 /sys/kernel/tracing 디렉토리에 마운트됩니다. timerlat 추적기에서 인터럽트 요청(IRQ)을 측정하고 스레드 대기 시간이 100마이크로초를 초과하면 분석을 위해 추적 출력을 저장합니다.

절차

  1. 현재 추적 프로그램을 나열합니다.

    # cat /sys/kernel/tracing/current_tracer
    nop

    no operations (nop)는 기본 추적기입니다.

  2. 추적 시스템의 current_tracer 파일에 timerlat 추적기를 추가합니다.

    # cd /sys/kernel/tracing/
    # echo timerlat > current_tracer
  3. 추적 출력을 생성합니다.

    # cat trace
    # tracer: timerlat

검증

  • 다음 명령을 입력하여 timerlat 가 현재 추적기로 활성화되어 있는지 확인합니다.

    # cat /sys/kernel/tracing/current_tracer
      timerlat