6P by neo 2달전 | favorite | 댓글과 토론
  • 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와 같은 최신 기술을 활용하여 성능 분석의 정확성과 유연성을 높임