39.3. SystemTap을 사용하여 네트워크 패킷 드롭 모니터링
Linux의 네트워크 스택은 다양한 이유로 패킷을 폐기할 수 있습니다. 일부 Linux 커널에는 패킷이 삭제되는 위치를 추적하는 tracepoint kernel.trace("kfree_skb") 가 포함됩니다.
dropwatch.stp SystemTap 스크립트는 kernel.trace("kfree_skb") 를 사용하여 패킷 삭제를 추적합니다. 스크립트는 5초마다 패킷 삭제 위치를 요약합니다.
사전 요구 사항
- SystemTap 설치에 설명된 대로 SystemTap 을 설치했습니다.
절차
dropwatch.stp스크립트를 실행합니다.stap --example dropwatch.stp
# stap --example dropwatch.stpCopy to Clipboard Copied! Toggle word wrap Toggle overflow dropwatch.stp스크립트를 15초 동안 실행하면 출력은 다음과 유사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고패킷의 위치를 보다 의미 있게 만들려면
/boot/System.map-$(uname -r)파일을 참조하십시오. 이 파일에는 각 함수의 시작 주소가 나열되므로dropwatch.stp스크립트의 주소를 특정 함수 이름에 매핑할 수 있습니다./boot/System.map-$(uname -r)파일의 스니펫을 고려할 때0xffffffff8024cd0f는unix_stream_recvmsg함수에 매핑되고0xffffff8044b472주소는arp_rcv:Copy to Clipboard Copied! Toggle word wrap Toggle overflow