magic-trace
Intel Processor Trace 기반의 고해상도 트레이싱 도구로, 약 40나노초 정밀도로 프로그램의 모든 함수 호출을 기록하며 재생형 대화형 분석을 제공합니다. 코드 수정이 필요 없고 오버헤드는 2-10%에 불과합니다.
스마트 다운로드
Download 버전 다운로드
v1.2.4 · 6.5 MB
비디오를 재생하듯이 프로그램의 나노초 단위 함수 호출 세부 정보를 확인하여 성능 병목과 이상 동작을 빠르게 찾아낼 수 있습니다.
주요 기능
- "모든 함수 호출 캡처 (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-only와 make default를 다시 실행하세요. 또는, 빌드 전에 수동으로 opam install ocaml_intrinsics를 실행하세요.
문제 해결magic-trace가 perf 6로 심볼을 파싱하는 데 실패하는 이유는 무엇인가요?
magic-trace는 현재 perf 버전 5 이하만 지원합니다. perf 6는 magic-trace가 아직 이해하지 못하는 형식으로 심볼을 출력합니다. 이 문제를 해결하려면 perf 버전 5로 다운그레이드하세요.
태그
시작하기
소프트웨어 설치
배포판에 맞는 패키지를 설치 (dpkg / rpm / AppImage)
최신 버전의 실행 파일을 다운로드하고 `chmod +x magic-trace`를 실행하여 실행 권한을 부여합니다.
대상 프로그램을 시작한 후 `magic-trace attach -pid $(pidof 프로그램명)`을 실행합니다.
몇 초 기다린 후 Ctrl+C를 누르면 magic-trace가 현재 디렉토리에 `trace.fxt.gz` 파일을 생성합니다.
- 최신 버전의 실행 파일을 다운로드하고 `chmod +x magic-trace`를 실행하여 실행 권한을 부여합니다.
- 대상 프로그램을 시작한 후 `magic-trace attach -pid $(pidof 프로그램명)`을 실행합니다.
- 몇 초 기다린 후 Ctrl+C를 누르면 magic-trace가 현재 디렉토리에 `trace.fxt.gz` 파일을 생성합니다.
체크섬 없음
이 프로젝트는 GitHub Release 페이지에 SHA-256 체크섬을 게시하지 않았습니다
SHA256 체크섬
체크섬 없음
GitHub Releases에서 직접 다운로드하고 파일 무결성을 직접 확인하세요
이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.
오픈소스 투명성
GitHub 소스 보기제거 정보
다운로드한 실행 파일을 직접 삭제하면 됩니다(다른 시스템 파일은 남지 않습니다).
추가 의존성 없음
다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.
문제 발생? 아래 FAQ 확인
2 FAQs