39.2. SystemTap 설치
SystemTap 사용을 시작하려면 필요한 패키지를 설치합니다. 시스템에 여러 커널이 설치된 두 개 이상의 커널에서 SystemTap을 사용하려면 각 커널 버전에 필요한 커널 패키지를 설치합니다.
사전 요구 사항
- 디버그 및 소스 리포지토리 활성화에 설명된 대로 디버그 리포지토리를 활성화했습니다.
절차
필요한 SystemTap 패키지를 설치합니다.
# dnf install systemtap
필요한 커널 패키지를 설치합니다.
stap-prep
사용:# stap-prep
stap-prep
이 작동하지 않는 경우 필요한 커널 패키지를 수동으로 설치합니다.# dnf install kernel-debuginfo-$(uname -r) kernel-debuginfo-common-$(uname -i)-$(uname -r) kernel-devel-$(uname -r)
$(uname -i)
는 자동으로 시스템의 하드웨어 플랫폼으로 교체되고$(uname -r)
은 실행 중인 커널 버전으로 자동 교체됩니다.
검증
SystemTap으로 검색할 커널이 현재 사용 중인 경우 설치에 성공했는지 테스트합니다.
# stap -v -e 'probe kernel.function("vfs_read") {printf("read performed\n"); exit()}'
SystemTap 배포에 성공하면 다음과 유사한 출력이 생성됩니다.
Pass 1: parsed user script and 45 library script(s) in 340usr/0sys/358real ms. Pass 2: analyzed script: 1 probe(s), 1 function(s), 0 embed(s), 0 global(s) in 290usr/260sys/568real ms. Pass 3: translated to C into "/tmp/stapiArgLX/stap_e5886fa50499994e6a87aacdc43cd392_399.c" in 490usr/430sys/938real ms. Pass 4: compiled C into "stap_e5886fa50499994e6a87aacdc43cd392_399.ko" in 3310usr/430sys/3714real ms. Pass 5: starting run. 1 read performed 2 Pass 5: run completed in 10usr/40sys/73real ms. 3
출력의 마지막 세 줄(
Pass 5
로 시작)은 다음을 나타냅니다.