24장. ftrace를 사용하여 대기 시간 추적


ftrace 유틸리티는 RHEL for Real Time 커널과 함께 제공되는 진단 기능 중 하나입니다. ftrace 는 개발자가 사용자 공간 외부에서 발생하는 대기 시간 및 성능 문제를 분석하고 디버깅하는 데 사용할 수 있습니다. ftrace 유틸리티에는 다양한 방법으로 유틸리티를 사용할 수 있는 다양한 옵션이 있습니다. 컨텍스트 스위치를 추적하거나, 우선 순위가 높은 작업이 발생하는 시간, 인터럽트 길이가 비활성화되거나 지정된 기간 동안 실행되는 모든 커널 함수를 나열하는 데 사용할 수 있습니다.

함수 추적기와 같은 ftrace 추적기 중 일부는 과도하게 많은 양의 데이터를 생성할 수 있으므로 추적 로그 분석을 시간이 많이 소요되는 작업으로 변환할 수 있습니다. 그러나 애플리케이션이 중요한 코드 경로에 도달할 때만 추적기를 시작하고 종료하도록 지시할 수 있습니다.

사전 요구 사항

  • 관리자 권한이 있어야 합니다.

24.1. ftrace 유틸리티를 사용하여 대기 시간 추적

ftrace 유틸리티를 사용하여 대기 시간을 추적할 수 있습니다.

절차

  1. 시스템에서 사용 가능한 추적기를 확인합니다.

    # cat /sys/kernel/debug/tracing/available_tracers
    function_graph wakeup_rt wakeup preemptirqsoff preemptoff irqsoff function nop
    Copy to Clipboard Toggle word wrap

    ftrace 의 사용자 인터페이스는 debugfs 내의 일련의 파일입니다.

    ftrace 파일은 /sys/kernel/debug/tracing/ 디렉터리에도 있습니다.

  2. /sys/kernel/debug/tracing/ 디렉터리로 이동합니다.

    # cd /sys/kernel/debug/tracing
    Copy to Clipboard Toggle word wrap

    이 디렉터리의 파일은 root 사용자만 수정할 수 있습니다. 추적을 사용하면 시스템 성능에 영향을 미칠 수 있습니다.

  3. 추적 세션을 시작하려면 다음을 수행합니다.

    1. /sys/kernel/debug/tracing/available_tracer의 사용 가능한 추적기 목록에서 사용할 추적기를 선택합니다.
    2. 선택기 이름을 /sys/kernel/debug/tracing/current_tracer 에 삽입합니다.

      # echo preemptoff > /sys/kernel/debug/tracing/current_tracer
      Copy to Clipboard Toggle word wrap
      참고

      echo 명령과 함께 단일 '>'를 사용하면 파일의 기존 값을 덮어씁니다. 파일에 값을 추가하려면 대신 '>>'을 사용합니다.

  4. function-trace 옵션은 wakeup_rt,preemptirqsoff 로 대기 시간을 추적하기 때문에 유용합니다. preemptirqsoff는 오버헤드를 초과할 수 있는 함수 추적을 자동으로 활성화합니다.

    functionfunction_graph tracing이 활성화되어 있는지 확인합니다.

    # cat /sys/kernel/debug/tracing/options/function-trace
    1
    Copy to Clipboard Toggle word wrap
    • 값이 1 이면 함수 및 function _graph 추적이 활성화되었음을 나타냅니다.
    • 값이 0 이면 함수function_graph 추적이 비활성화됩니다.
  5. 기본적으로 함수 및 function _graph 추적은 활성화되어 있습니다. function _graph tracing을 설정하거나 끄려면 적절한 값을 /sys/kernel/debug/tracing/options/function-trace 파일로 에코합니다.

    # echo 0 > /sys/kernel/debug/tracing/options/function-trace
    # echo 1 > /sys/kernel/debug/tracing/options/function-trace
    Copy to Clipboard Toggle word wrap
    중요

    echo 명령을 사용하는 경우 값과 > 문자 사이에 공백 문자를 배치해야 합니다. 쉘 프롬프트에서 0 >, 1 > , 1> 및 2 >를 사용하여 표준 입력, 표준 출력 및 표준 오류를 나타냅니다. 실수로 사용하면 예기치 않은 추적 출력이 발생할 수 있습니다.

  6. /debugfs/tracing/ 디렉터리에 있는 다양한 파일의 값을 변경하여 추적자의 세부 정보 및 매개 변수를 조정합니다.

    예를 들면 다음과 같습니다.

    irqsoff, Preempirqsoff,preempirqsoffwakeup 추적기는 지속적으로 대기 시간을 모니터링합니다. tracing_max_latency 에 기록된 것보다 더 큰 대기 시간을 기록하는 경우 해당 대기 시간의 추적이 기록되고 tracing_max_latency 가 새 최대 시간으로 업데이트됩니다. 이러한 방식으로 tracing_max_latency 는 마지막 재설정 이후 항상 가장 높은 대기 시간을 표시합니다.

    • 최대 대기 시간을 재설정하려면 0tracing_max_latency 파일로 에코합니다.

      # echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
      Copy to Clipboard Toggle word wrap
    • 설정된 양보다 대기 시간만 표시하려면 마이크로초 단위로 양을 에코합니다.

      # echo 200 > /sys/kernel/debug/tracing/tracing_max_latency
      Copy to Clipboard Toggle word wrap

      추적 임계값이 설정되면 최대 대기 시간 설정을 덮어씁니다. 임계값보다 큰 대기 시간이 기록되면 최대 대기 시간에 관계없이 기록됩니다. 추적 파일을 검토할 때 마지막으로 기록된 대기 시간만 표시됩니다.

    • 임계값을 설정하려면 대기 시간을 기록해야 하는 마이크로초 수를 에코합니다.

      # echo 200 > /sys/kernel/debug/tracing/tracing_thresh
      Copy to Clipboard Toggle word wrap
  7. 추적 로그를 확인합니다.

    # cat /sys/kernel/debug/tracing/trace
    Copy to Clipboard Toggle word wrap
  8. 추적 로그를 저장하려면 다른 파일에 복사합니다.

    # cat /sys/kernel/debug/tracing/trace > /tmp/lat_trace_log
    Copy to Clipboard Toggle word wrap
  9. 추적 중인 함수를 확인합니다.

    # cat /sys/kernel/debug/tracing/set_ftrace_filter
    Copy to Clipboard Toggle word wrap
  10. /sys/kernel/debug/tracing/set_ftrace_filter 의 설정을 편집하여 추적되는 함수를 필터링합니다. 파일에 필터가 지정되지 않은 경우 모든 함수가 추적됩니다.
  11. 필터 설정을 변경하려면 추적할 함수의 이름을 에코합니다. 필터를 사용하면 검색어 시작 또는 끝에서 '*' 와일드카드를 사용할 수 있습니다.

    예를 들면 ftrace 예제 를 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat