Repolode
janestreet

janestreet/magic-trace

Intel Processor Trace로 프로세스의 모든 함수 호출을 기록하고 대화형 타임라인으로 보여 주는 Linux 프로파일러입니다.

스타
6,347
포크
223
열린 이슈
73
마지막 커밋
19일 전

어떤 프로젝트인가요?

magic-trace는 프로세스가 수행하는 작업을 고해상도 트레이스로 수집하고 보여 줍니다. perf처럼 일정한 간격으로 호출 스택을 샘플링하는 대신, Intel Processor Trace를 사용해 모든 제어 흐름을 링 버퍼에 기록한 다음 원하는 시점에 버퍼의 스냅샷을 가져옵니다. 스냅샷은 기본적으로 직전 약 10ms 동안의 호출 스택을 보여 주는 대화형 타임라인으로 재구성되며, 함수 호출을 약 40ns 단위로 확인할 수 있습니다.

실행 중인 프로세스에 연결한 뒤 Ctrl+C로 분리해 실행 종료 시점의 상태를 캡처하거나, 지정한 함수가 호출될 때마다 스냅샷을 찍도록 트리거를 설정할 수 있습니다. 트레이스는 trace.fxt.gz 파일로 저장되며, Perfetto를 포크한 브라우저 기반 뷰어 magic-trace.org에서 열 수 있습니다. 애플리케이션을 수정할 필요가 없으며, 오버헤드는 2%~10%라고 안내되어 있습니다.

Skylake 이후 세대의 Intel CPU가 필요하며 Linux에서만 실행됩니다. 대부분의 가상 머신은 지원되지 않습니다.

핵심 기능

  • 01프로세스의 모든 함수 호출을 약 40ns 해상도로 기록합니다.
  • 02샘플링 대신 Intel Processor Trace를 사용해 제어 흐름 링 버퍼의 스냅샷을 찍습니다.
  • 03애플리케이션을 수정하지 않고 실행 중인 프로세스에 연결합니다.
  • 04지정한 함수가 호출되거나 프로세스에서 분리될 때 스냅샷을 찍도록 설정할 수 있습니다.
  • 05브라우저에서 실행되는 뷰어이며 트레이스를 업로드하지 않습니다.

활용 사례

  • 빠른 요청이 대부분인 상황에서 일부 프로덕션 요청이 느린 이유를 찾습니다.
  • 핫 패스에서 예상과 달리 실제로 어떤 코드가 실행되는지 확인합니다.
  • 크래시 직전까지 이어진 호출 순서를 살펴봅니다.
  • 스케줄러 주기나 GC 단계처럼 장시간 실행되는 프로그램에서 두 지점 사이에 무슨 일이 일어나는지 조사합니다.

빠른 시작

  1. 1

    최신 릴리스 페이지에서 릴리스 바이너리 또는 패키지를 다운로드합니다

  2. 2

    미리 빌드된 바이너리에 실행 권한을 부여합니다

    chmod +x magic-trace
  3. 3

    다운로드한 .deb 패키지를 설치합니다

    sudo dpkg -i magic-trace*.deb
  4. 4

    도움말 텍스트를 표시하여 설치를 확인합니다

    magic-trace -help

사용 전 알아둘 점

  • Linux만 지원하며 Intel CPU(Skylake 이상)가 필요합니다.
  • 대부분의 가상 머신(VM)은 지원되지 않습니다.

포함된 컬렉션

토픽

#performance-tools#profiling#tracing#intel-pt#linux#debugging#observability#intel#introspection#profile

자주 묻는 질문

magic-trace은(는) 무엇인가요?
Intel Processor Trace로 프로세스의 모든 함수 호출을 기록하고 대화형 타임라인으로 보여 주는 Linux 프로파일러입니다. magic-trace는 프로세스가 수행하는 작업을 고해상도 트레이스로 수집하고 보여 줍니다. perf처럼 일정한 간격으로 호출 스택을 샘플링하는 대신, Intel Processor Trace를 사용해 모든 제어 흐름을 링 버퍼에 기록한 다음 원하는 시점에 버퍼의 스냅샷을 가져옵니다. 스냅샷은 기본적으로 직전 약 10ms 동안의 호출 스택을 보여 주는 대화형 타임라인으로 재구성되며, 함수 호출을 약 40ns 단위로 확인할 수 있습니다.
magic-trace은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
magic-trace은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
magic-trace은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. magic-trace의 마지막 커밋은 2026년 10월 19일입니다.
magic-trace은(는) 어디에 사용할 수 있나요?
빠른 요청이 대부분인 상황에서 일부 프로덕션 요청이 느린 이유를 찾습니다. 핫 패스에서 예상과 달리 실제로 어떤 코드가 실행되는지 확인합니다. 크래시 직전까지 이어진 호출 순서를 살펴봅니다. 스케줄러 주기나 GC 단계처럼 장시간 실행되는 프로그램에서 두 지점 사이에 무슨 일이 일어나는지 조사합니다.
magic-trace는 어떻게 설치하나요?
최신 릴리스 페이지에서 릴리스 바이너리 또는 패키지를 다운로드합니다 미리 빌드된 바이너리에 실행 권한을 부여합니다: chmod +x magic-trace 다운로드한 .deb 패키지를 설치합니다: sudo dpkg -i magic-trace*.deb 도움말 텍스트를 표시하여 설치를 확인합니다: magic-trace -help
magic-trace은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/janestreet/magic-trace

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트