26.2. SystemTap 설치
SystemTap 사용을 시작하려면 필요한 패키지를 설치합니다. 여러 커널이 있는 시스템에서 둘 이상의 커널에서 SystemTap을 사용하려면 각 커널 버전에 해당하는 커널 패키지를 설치합니다.
사전 요구 사항
- 디버그 및 소스 리포지토리 활성화에 설명된 대로 디버그 리포지토리를 활성화했습니다.
프로세스
필요한 SystemTap 패키지를 설치합니다.
# dnf install systemtap필요한 커널 패키지를 설치합니다.
stap-prep사용:# stap-prepstap-prep이 작동하지 않는 경우 필요한 커널 패키지를 수동으로 설치합니다.# dnf install kernel-debuginfo-$(uname -r) kernel-debuginfo-common-$(uname -m)-$(uname -r) kernel-devel-$(uname -r)$(uname -m)는 자동으로 시스템의 하드웨어 플랫폼으로 교체되고$(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. read performed Pass 5: run completed in 10usr/40sys/73real ms.다음과 같습니다.
-
5: starting run은 SystemTap이 커널을 프로브하고 계측을 실행하는 장치를 성공적으로 생성했음을 나타냅니다. -
Read performed는 SystemTap이 지정된 이벤트(이 예에서 VFS 읽기)를 감지했음을 나타냅니다. -
5 패스: 완료된 < time > ms를 실행하면 SystemTap이 유효한 처리기를 실행했음을 나타냅니다. 텍스트가 표시되고 오류 없이 닫힙니다.