26.5. SystemTap 스크립트 샘플
SystemTap 설치와 함께 배포되는 샘플 스크립트는 /usr/share/systemtap/examples 디렉터리에서 찾을 수 있습니다. stap 명령을 사용하여 다른 SystemTap 스크립트를 실행합니다.
- 함수 호출 추적
para-callgraph.stpSystemTap 스크립트를 사용하여 함수 호출 및 함수 반환을 추적할 수 있습니다.# stap para-callgraph.stp <argument1 argument2>이 스크립트는 두 가지 명령줄 인수를 사용합니다.
- 추적 중인 항목/exit인 함수의 이름입니다.
스레드별로 추적을 활성화하거나 비활성화하는 선택적 트리거 기능입니다.
트리거 함수가 아직 종료되지 않은 한 각 스레드에서 추적은 계속됩니다.
- 폴링 애플리케이션 모니터링
timeout.stpSystemTap 스크립트를 사용하여 폴링 중인 애플리케이션을 식별하고 모니터링할 수 있습니다. 이를 알고, 불필요한 또는 과도한 폴링을 추적할 수 있으므로 CPU 사용량 및 전력 절감 측면에서 개선을 위해 영역을 정확하게 파악하는 데 도움이 됩니다.# stap timeout.stp이 스크립트는 각 애플리케이션이
폴링을 사용하는 횟수를 추적하고 ,epoll,itimer,futex,nanosleep및 Cryostat 시스템 호출을선택합니다.- 프로세스당 시스템 호출 볼륨 추적
syscalls_by_proc.stpSystemTap 스크립트를 사용하여 시스템 호출의 가장 많은 볼륨을 수행하는 프로세스를 확인할 수 있습니다. 상위 20개의 프로세스를 표시합니다.# stap syscalls_by_proc.stp- 네트워크 소켓 코드에서 호출되는 추적 함수
socket-trace.stpSystemTap 스크립트를 사용하여 커널의net/socket.c파일에서 호출된 함수를 추적할 수 있습니다. 이렇게 하면 각 프로세스가 커널 수준에서 네트워크와 상호 작용하는 방법을 자세히 확인할 수 있습니다.# stap socket-trace.stp- 각 파일 읽기 또는 쓰기에 대한 I/O 시간 추적
iotime.stpSystemTap 스크립트를 사용하여 각 프로세스를 읽거나 파일에 쓰는 데 걸리는 시간을 모니터링할 수 있습니다. 이렇게 하면 시스템에서 로드하는 속도가 느린 파일을 결정하는 데 도움이 됩니다.# stap iotime.stp- IRQ 및 작업의 사이클을 훔치는 프로세스 추적
cycle_thief.stpSystemTap 스크립트를 사용하여 작업이 실행되는 시간과 실행되지 않는 시간을 추적할 수 있습니다. 이를 통해 작업에서 사이클을 훔치는 프로세스를 식별하는 데 도움이 됩니다.# stap cycle_thief.stp -x pid자세한 내용은
/usr/share/systemtap/examples디렉터리를 참조하십시오.참고SystemTap 스크립트에 대한 자세한 예제와 정보는
/usr/share/systemtap/examples/index.html파일에서 확인할 수 있습니다. 웹 브라우저에서 열어 사용 가능한 모든 스크립트 및 해당 설명을 확인합니다.