Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7장. 컴파일러 및 도구

SystemTap

SystemTab은 사용자가 운영체제(특히 커널)의 동작을 세밀히 연구하고 살펴볼 수 있도록 해주는 추적 및 측정 도구입니다. 이는 netstat, ps, top, iostat와 같은 도구의 출력과 유사한 정보를 제공합니다; 하지만, SystemTab은 수집한 정보에 대해 보다 자세한 필터링과 분석할 수 있도록 고안되어 있습니다.

Red Hat Enterprise Linux 5.9에서 SystemTap은 1.8 버전으로 업데이트되어 다음과 같은 기능 및 개선 사항을 제공합니다:
  • SystemTap 런타임 (staprun)은 -T 시간 제한 옵션을 허용하여 깨우기 횟수를 줄여 스크립트에서 낮은 처리량을 폴링할 수 있게 합니다.
  • SystemTap에 의해 호출된 경우 kbuild $PATH 환경은 삭제 처리됩니다.
  • printf 형식은 %#c 제어 매개 변수를 사용하여 비인쇄 문자를 확장할 수 있습니다.
  • 프리티 프린트 (Pretty-printed) 비트 필드에 정수를 사용할 수 있습니다. 또한 문자는 출력을 위한 확장 형식을 사용할 수 있습니다.
  • SystemTap 컴파일 서버 및 클라이언트는 IPv6 네트워크를 지원합니다.
  • SystemTap 모듈은 크기가 작아져 컴파일이 빨라졌습니다. 모듈의 디버그 정보는 기본값으로 표시되지 않습니다.
  • @var 구문은 uprobekprobe 처리기 (프로세스, 커널, 모듈)에서 DWARF 변수에 액세스하기 위한 대안적인 언어 구문입니다.
  • SystemTap 스크립트 번역기 드라이버 (stap)는 다음과 같은 리소스 제한 옵션을 제공합니다:
    --rlimit-as=NUM
    --rlimit-cpu=NUM
    --rlimit-nproc=NUM
    --rlimit-stack=NUM
    --rlimit-fsize=NUM
    
  • SystemTap 컴파일러 서버는 동시에 여러개의 연결을 지원합니다.
  • 다음의 tapset 기능은 1.8 릴리즈에서 폐기 대상으로 지정되어 있으며 1.9 릴리즈에서 삭제될 것입니다.
    daddr_to_string()
    
  • SystemTap은 tapset에 의해 포함된 C 헤더와의 충돌을 피하기 위해 로컬 매개 변수를 조작합니다.
  • 내장된 C 함수에서 THIS->* 표기 대신 새로 정의된 매크로 STAP_ARG_*를 사용하는 것이 좋습니다. BZ#751479