Android, Linux, Chromium의 트레이스를 분석하는 SDK, 시스템 데몬, 브라우저 기반 UI를 갖춘 오픈소스 트레이싱·프로파일링 도구 모음입니다.
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
최신 릴리스 페이지에서 릴리스 바이너리 또는 패키지를 다운로드합니다
- 2
미리 빌드된 바이너리에 실행 권한을 부여합니다
chmod +x magic-trace - 3
다운로드한 .deb 패키지를 설치합니다
sudo dpkg -i magic-trace*.deb - 4
도움말 텍스트를 표시하여 설치를 확인합니다
magic-trace -help
사용 전 알아둘 점
- Linux만 지원하며 Intel CPU(Skylake 이상)가 필요합니다.
- 대부분의 가상 머신(VM)은 지원되지 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- 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 통계는 매일 갱신됩니다.
관련 프로젝트
Kubernetes 클러스터와 Linux 호스트의 시스템 데이터를 수집하고 살펴보는 eBPF 도구 키트
함수 호출을 기록하고 코드 실행을 대화형 타임라인으로 시각화하는 오버헤드가 낮은 Python 트레이서입니다.
코드가 어디서 시간을 쓰는지 콘솔, HTML 등으로 보여주는 Python 호출 스택 프로파일러입니다.
Linux, CPU, GPU 및 PyTorch 학습 메트릭을 내보내고 필요할 때 트레이스를 수집하는 경량 텔레메트리 데몬입니다.
eBPF로 커널 및 사용자 공간 이벤트를 최소한의 오버헤드로 추적하는 Linux용 고수준 추적 언어 및 도구입니다.