15장. perf를 사용하여 uprobes 생성
Uprobes (사용자 공간 프로브)는 런타임 시 사용자 공간 애플리케이션에 대한 동적 계측을 제공합니다. 소스 코드를 변경하거나 다시 컴파일할 필요가 없습니다.
uprobes 가 유용한 두 가지 주요 사용 사례가 있습니다.
- 디버깅 및 성능 분석
-
Uprobes는 감시 지점과 유사하게 작동합니다. 애플리케이션의 특정 위치에 삽입하여 해당 코드 경로가 실행되는 빈도를 계산할 수 있습니다. 또한 호출 스택 또는 변수 값과 같은 풍부한 컨텍스트를 캡처할 수 있습니다. 성능 병목 현상을 식별하거나 버그를 추적하는 데 사용합니다. - 이벤트 기반 데이터 수집
-
Uprobes는 원형 버퍼와 같은 메커니즘에 대한 전환 이벤트 역할을 합니다. 사용자 공간의 실행 트리거에 따라 데이터가 기록되거나 플러시되는 시기를 제어할 수 있습니다.
Uprobes 는 perf 와 원활하게 통합되므로 기존 업로브 를 소비하고 새 버전을 생성할 수 있습니다. 이러한 유연성을 통해 kprobes를 사용하여 (Kprobes를 사용하여) 커널 공간 계측과 함께 사용자 공간 동작의 강력한 비 침입 및 프로파일링을 수행할 수 있습니다.
15.1. perf를 사용하여 기능 수준에서 uprobes 생성 링크 복사링크가 클립보드에 복사되었습니다!
perf 툴을 사용하여 프로세스 또는 애플리케이션의 임의의 지점에서 동적 추적 지점을 생성합니다. perf stat 또는 perf 레코드와 함께 이러한 추적 포인트를 사용하여 프로세스 및 애플리케이션 동작을 분석합니다.
사전 요구 사항
-
perf사용자 공간 도구가 설치되어 있어야 합니다. 자세한 내용은 perf 설치를 참조하십시오.
프로세스
프로세스 또는 애플리케이션 관련 위치에서 모니터링에 관심이 있는 프로세스 또는 애플리케이션에 uprobe를 생성합니다.
# perf probe -x /path/to/executable -a functionAdded new event: probe_executable:function (on function in /path/to/executable) You can now use it in all perf tools, such as: perf record -e probe_executable:function -aR sleep 1