A.3. Systemtap Flight Recorder를 사용하여 Constant Basis에서 추적 데이터 캡처
qemu-kvm 패키지에 제공된 systemtap initscript를 사용하여 항상 QEMU 추적 데이터를 캡처할 수 있습니다. 이 패키지는 SystemTap의 초보 레코더 모드를 사용하여 실행 중인 모든 게스트 가상 머신을 추적하고 호스트의 고정 크기 버퍼에 결과를 저장합니다. 이전 추적 항목은 버퍼가 채워지면 새 항목으로 덮어씁니다.
절차 A.1. systemtap 구성 및 실행
패키지를 설치합니다.
다음 명령을 실행하여 systemtap-initscript 패키지를 설치합니다.# yum install systemtap-initscript
구성 파일 복사
다음 명령을 실행하여 systemtap 스크립트 및 구성 파일을 systemtap 디렉터리에 복사합니다.# cp /usr/share/qemu-kvm/systemtap/script.d/qemu_kvm.stp /etc/systemtap/script.d/ # cp /usr/share/qemu-kvm/systemtap/conf.d/qemu_kvm.conf /etc/systemtap/conf.d/
활성화할 추적 이벤트 세트는 qemu_kvm.stp에 제공됩니다. 이 SystemTap 스크립트는/usr/share/systemtap/tapset/qemu-kvm-simpletrace.stp
에 제공된 추적 이벤트를 추가 또는 제거하도록 사용자 지정할 수 있습니다.qemu_kvm.conf
에서 flight recorder 버퍼 크기 및 메모리에 추적 저장 여부를 제어하도록 qemu_kvm.conf를 만들 수 있습니다.서비스 시작
다음 명령을 실행하여 systemtap 서비스를 시작합니다.# systemctl start systemtap qemu_kvm
부팅 시 systemtap을 사용하도록 설정
다음 명령을 실행하여 부팅 시 systemtap 서비스가 실행되도록 활성화합니다.# systemctl enable systemtap qemu_kvm
서비스가 실행 중인지 확인
다음 명령을 실행하여 서비스가 작동하는지 확인합니다.# systemctl status systemtap qemu_kvm qemu_kvm is running...
절차 A.2. 추적 버퍼 검사
추적 버퍼 덤프 파일 생성
trace.log라는 추적 버퍼 덤프 파일을 생성하고 다음 명령을 실행하여 tmp 디렉터리에 배치합니다.# staprun -A qemu_kvm >/tmp/trace.log
파일 이름과 위치를 다른 이름으로 변경할 수 있습니다.서비스 시작
이전 단계에서 서비스를 중지하면 다음 명령을 실행하여 서비스를 다시 시작합니다.# systemctl start systemtap qemu_kvm
추적 내용을 읽을 수 있는 형식으로 변환
추적 파일 내용을 보다 읽기 쉬운 형식으로 변환하려면 다음 명령을 입력합니다.# /usr/share/qemu-kvm/simpletrace.py --no-header /usr/share/qemu-kvm/trace-events /tmp/trace.log
참고
다음 노트 및 제한 사항에 유의하십시오.
- systemtap 서비스는 기본적으로 비활성화되어 있습니다.
- 이 서비스를 활성화하면 작은 성능 저하가 있지만 총 사용 가능한 이벤트에 따라 달라집니다.
/usr/share/doc/qemu-kvm-*/README.systemtap
에 README 파일이 있습니다.