OpenSource-Hub
M

magic-trace

5.9k stars·개발 도구·SHA-256 체크섬 확인됨

Intel Processor Trace 기반의 고해상도 트레이싱 도구로, 약 40나노초 정밀도로 프로그램의 모든 함수 호출을 기록하며 재생형 대화형 분석을 제공합니다. 코드 수정이 필요 없고 오버헤드는 2-10%에 불과합니다.

비디오를 재생하듯이 프로그램의 나노초 단위 함수 호출 세부 정보를 확인하여 성능 병목과 이상 동작을 빠르게 찾아낼 수 있습니다.

주요 기능

  • "모든 함수 호출 캡처 (C/C++, Rust 등 컴파일 언어 포함), 해상도 약 40나노초"
  • "비침습적 추적: 애플리케이션 코드 수정 또는 재컴파일 불필요"
  • "두 가지 트리거 모드 지원: 수동 Ctrl+C 또는 지정된 함수 자동 트리거, 최대 약 10밀리초 히스토리 되추적 가능"
  • "대화형 호출 스택 타임라인 생성, 확대/축소, 측정, 마킹 등 작업 지원"
  • "Intel Processor Trace 하드웨어를 통한 낮은 오버헤드 (2-10%)"

할 수 없는 것

  • Intel Skylake 이상의 CPU 아키텍처만 지원하며, Linux 시스템에서만 사용 가능합니다.
  • 가상 머신에서 실행할 수 없습니다 (가상 머신은 일반적으로 Intel PT 패스스루를 지원하지 않음).
  • 커널 모드 추적(-trace-include-kernel)을 사용하려면 root 권한이 필요합니다.
  • 트리거 함수는 빈 함수여야 하며 인라인될 수 없습니다. 그렇지 않으면 magic-trace가 인식할 수 없습니다.
  • 추적 시 프로세스의 추가 오버헤드는 약 2-10%이며, 고주파 시나리오에서는 영향을 평가해야 합니다.

사용 사례

  • 프로덕션 환경에서 요청 응답이 느린 원인을 분석하고, 비정상 요청과 정상 요청의 동작 차이를 구분합니다.
  • 프로그램 충돌 직전 마지막 몇 밀리초의 전체 실행 경로를 추적하여 단일 스택 역추적을 대체합니다.

상세 설명

magic-trace는 Jane Street에서 개발한 고성능 트레이싱 도구로, Intel Processor Trace 기술을 기반으로 약 40나노초의 해상도로 프로그램의 모든 함수 호출을 기록합니다. 링 버퍼를 통해 지속적으로 제어 흐름을 기록하며, 트리거 시점(Ctrl+C 또는 지정된 함수 호출 등)에서 트리거 전 약 10밀리초의 전체 호출 스택 히스토리를 캡처하고 상호작용 가능한 타임라인 뷰를 생성합니다. 기존 샘플링 도구인 perf와 달리 magic-trace는 전체 제어 흐름을 캡처하여 이벤트 발생 전 마이크로초 단위의 정확한 동작을 확인할 수 있습니다. 애플리케이션 코드를 수정할 필요가 없으며 추가 오버헤드는 2%~10%에 불과하고, 심볼 퍼지 매칭 또는 예약된 빈 함수를 트리거 포인트로 사용할 수 있습니다. 프로덕션 환경 성능 문제 진단, 복잡한 코드 실행 과정 이해, 크래시 현장 재생 등의 시나리오에 적합합니다.

문제 해결 & FAQ (2)

문제 해결
magic-trace를 빌드할 때 'Library "ocaml_intrinsics" not found' 오류로 make default가 실패하는 이유는 무엇인가요?

테스트 대상 'variable-duration'은 'ocaml_intrinsics'에 의존하지만, 이는 magic-trace.opam에 의존성으로 선언되지 않았습니다. opam 파일의 'with-test' 의존성에 'ocaml_intrinsics'를 추가한 후, opam install . --deps-onlymake default를 다시 실행하세요. 또는, 빌드 전에 수동으로 opam install ocaml_intrinsics를 실행하세요.

원본 Issue #313
문제 해결
magic-trace가 perf 6로 심볼을 파싱하는 데 실패하는 이유는 무엇인가요?

magic-trace는 현재 perf 버전 5 이하만 지원합니다. perf 6는 magic-trace가 아직 이해하지 못하는 형식으로 심볼을 출력합니다. 이 문제를 해결하려면 perf 버전 5로 다운그레이드하세요.

원본 Issue #334

태그

tracingprofilingIntel PTperformancedebuggingcall-stacklow-overhead

시작하기

1

설치 프로그램 다운로드

위 버튼을 클릭하여 시스템에 맞는 설치 프로그램을 다운로드

2

소프트웨어 설치

배포판에 맞는 패키지를 설치 (dpkg / rpm / AppImage)

3

최신 버전의 실행 파일을 다운로드하고 `chmod +x magic-trace`를 실행하여 실행 권한을 부여합니다.

4

대상 프로그램을 시작한 후 `magic-trace attach -pid $(pidof 프로그램명)`을 실행합니다.

5

몇 초 기다린 후 Ctrl+C를 누르면 magic-trace가 현재 디렉토리에 `trace.fxt.gz` 파일을 생성합니다.

설치 가이드
  1. 최신 버전의 실행 파일을 다운로드하고 `chmod +x magic-trace`를 실행하여 실행 권한을 부여합니다.
  2. 대상 프로그램을 시작한 후 `magic-trace attach -pid $(pidof 프로그램명)`을 실행합니다.
  3. 몇 초 기다린 후 Ctrl+C를 누르면 magic-trace가 현재 디렉토리에 `trace.fxt.gz` 파일을 생성합니다.
파일 무결성

체크섬 없음

이 프로젝트는 GitHub Release 페이지에 SHA-256 체크섬을 게시하지 않았습니다

SHA256 체크섬

체크섬 없음

GitHub Releases에서 직접 다운로드하고 파일 무결성을 직접 확인하세요

이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.

오픈소스 투명성

GitHub 소스 보기
환경 가이드

제거 정보

다운로드한 실행 파일을 직접 삭제하면 됩니다(다른 시스템 파일은 남지 않습니다).

추가 의존성 없음

다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.

프로젝트 정보
라이선스MIT
마지막 업데이트2026-06-27 11:25:05
GitHub 저장소공식 웹사이트

문제 발생? 아래 FAQ 확인

2 FAQs

유사한 프로젝트