- 0x.tools는 리눅스에서 애플리케이션 성능을 분석하기 위한 오픈 소스 유틸리티 모음
- 배포의 간편성과 최소한의 종속성을 목표로 하여 시스템 문제 해결의 마찰을 줄임
- OS 업그레이드, 커널 모듈 설치, 무거운 모니터링 프레임워크, Java 에이전트 또는 데이터베이스 설치가 필요 없음
- 개별 스레드 수준의 활동을 측정할 수 있으며, 코드 실행, 슬립 상태, 시스템 호출 및 커널 대기 위치 등을 추적하고 샘플링함
xcapture-bpf & xtop 2.0.2 베타 공개
- xcapture-bpf와 xtop은 리눅스의 top 도구와 유사하지만, eBPF를 사용하여 성능 데이터를 다양한 각도에서 볼 수 있음
- 시스템 수준 개요와 개별 스레드 활동, 커널 이벤트까지 드릴다운 가능
- eBPF는 완전히 프로그래밍 가능하며, 이를 최대한 활용할 계획임
xcapture-bpf 터미널 하이라이팅 및 스택타일
- 터미널 텍스트 검색/하이라이팅 및 스크롤 기능이 새로운 스택타일 형식과 잘 작동함
- 스택타일은 함수 이름뿐만 아니라 파일 이름이나 메모리 할당 이유 등 다양한 정보를 포함할 수 있음
xcapture-bpf 설치
- xcapture-bpf는 아직 베타 버전이므로 프로덕션 시스템에서는 실행하지 말 것
- eBPF를 사용하며, 현재 BCC와 python3를 보고 프론트엔드로 사용함
- RHEL 8.1 또는 Ubuntu 24.04 이상에서 테스트됨
포함된 도구
- 실시간 인터랙티브 도구와 저주파 프로파일링 도구 제공
- 주요 도구 설명:
-
psn
: 현재 상위 스레드 활동 샘플링
-
xcapture
: 저오버헤드 스레드 상태 샘플러
-
xcapture-bpf
: eBPF를 사용한 저오버헤드 프로그래머블 스레드 상태 샘플러
-
syscallargs
: 시스템 호출 및 인수 목록
-
schedlat
: 단일 프로세스의 CPU 스케줄링 지연 시간 표시
-
run_xcapture.sh
: xcapture를 계속 실행하는 간단한 데몬 스크립트
-
run_xcpu.sh
: CPU에서 스레드의 저주파 연속 스택 샘플링
사용법 및 예제 출력
-
xcapture
를 사용하여 리눅스 스레드 활동 샘플링 및 고정 폭 출력 표시
- CSV 파일로 출력하여 명령줄에서 성능 분석 가능
설치 및 사용법
-
xcapture
, schedlat
, psn
은 표준 리눅스 도구처럼 /proc 파일 시스템을 샘플링함
- 추가 구성 없이 리눅스 커널 버전 2.6 이상에서 작동
FAQ
- 0x.tools는 GPL v3 라이선스의 오픈 소스 제품임
- 측정 오버헤드는 서버 CPU 용량의 1% 미만
- 프로덕션 환경에서 안전하게 사용 가능
- Perf와 eBPF 대신 /proc 샘플링을 사용하는 이유: 기존 기업에서 대규모 프로덕션용으로 eBPF를 사용할 수 없기 때문
GN⁺의 의견
- 0x.tools는 리눅스 시스템 성능 분석을 위한 강력한 도구 모음임
- eBPF를 사용하여 성능 데이터를 다양한 각도에서 볼 수 있어 유용함
- 프로덕션 환경에서 안전하게 사용할 수 있도록 설계됨
- 다른 성능 분석 도구와 비교하여 낮은 오버헤드와 간편한 설치가 장점임
- eBPF와 같은 최신 기술을 활용하여 성능 분석의 정확성과 유연성을 높임