15장. perf를 사용하여 uprobes 생성
Uprobes
(사용자 공간 프로브)는 소스 코드 또는 재컴파일을 변경할 필요 없이 런타임 시 사용자 공간 애플리케이션의 특정 지점을 모니터링하는 동적 계측 메커니즘입니다.
uprobes
가 유용한 두 가지 주요 사용 사례가 있습니다.
- 디버깅 및 성능 분석
-
Uprobes
는 감시 지점과 유사하게 작동합니다. 애플리케이션의 특정 위치에 삽입하여 해당 코드 경로가 실행되는 빈도를 계산할 수 있습니다. 또한 호출 스택 또는 변수 값과 같은 풍부한 컨텍스트를 캡처하여 성능 병목 현상을 식별하거나 버그를 추적하는 데 유용합니다. - 이벤트 기반 데이터 수집
-
Uprobes
는 원형 버퍼와 같은 메커니즘에 대한 전환 이벤트 역할을 하며 사용자 공간의 실행 트리거를 기반으로 데이터가 기록되거나 플러시되는 시기를 제어하는 데 도움이 됩니다.
Uprobes
는 perf
와 원활하게 통합되므로 기존 업로브
를 소비하고 새 버전을 생성할 수 있습니다. 이러한 유연성을 통해 커널 공간 계측(K probes
를 통해)과 함께 사용자 공간 동작의 강력한 비 침입 및 프로파일링을 수행할 수 있습니다.
15.1. perf를 사용하여 기능 수준에서 uprobes 생성
perf
툴을 사용하여 프로세스 또는 애플리케이션의 임의의 지점에서 동적 추적 지점을 생성할 수 있습니다. 그런 다음 이러한 추적 포인트를 perf stat
및 perf
레코드와
같은 다른 perf 툴과 함께 사용하여 프로세스 또는 애플리케이션 동작을 더 잘 이해할 수 있습니다.
사전 요구 사항
-
perf
사용자 공간 도구가 설치되어 있어야 합니다. 자세한 내용은 perf 설치를 참조하십시오.
프로세스
프로세스 또는 애플리케이션 관련 위치에서 모니터링에 관심이 있는 프로세스 또는 애플리케이션에 uprobe를 생성합니다.
perf probe -x /path/to/executable -a function
# perf probe -x /path/to/executable -a function Added 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
Copy to Clipboard Copied!