39.2. SystemTap 설치

SystemTap 사용을 시작하려면 필요한 패키지를 설치합니다. 시스템에 여러 커널이 설치된 두 개 이상의 커널에서 SystemTap을 사용하려면 커널 버전에 필요한 커널 패키지를 설치합니다.

절차

  1. 필요한 SystemTap 패키지를 설치합니다.

    # dnf install systemtap
  2. 필요한 커널 패키지를 설치합니다.

    1. stap-prep 사용:

      # stap-prep
    2. 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로 시작)은 다음을 나타냅니다.

    1
    SystemTap에서 커널을 검색하고 계측을 실행하기 위한 계측을 성공적으로 생성했습니다.
    2
    SystemTap이 지정된 이벤트(이 경우 VFS 읽기)를 감지했습니다.
    3
    SystemTap은 유효한 처리기를 실행한 다음(인쇄된 텍스트를 입력한 다음 오류 없이 닫힙니다).