이 마지막 단계에서는 네트워크 인터페이스의 상세 통계를 확인하는 방법을 배웁니다. 이는 일상적인 네트워크 문제 해결을 위해 ethtool을 가장 흔하게 사용하는 방법 중 하나입니다. 이 도구는 송수신된 패킷 수, 바이트 수, 그리고 아마도 가장 중요한 오류 수를 포함한 풍부한 정보를 제공합니다.
이러한 통계를 보려면 -S (또는 --statistics) 플래그를 사용합니다. 인터페이스 이름을 eth0으로 바꾸는 것을 잊지 마십시오.
ethtool -S eth0
출력은 긴 카운터 목록이 될 것입니다. 이 환경에서는 NIC 가 여러 큐를 사용하므로 통계가 큐별로 보고됩니다. rx_queue_ 및 tx_queue_ 패킷 카운터에 집중해 보겠습니다.
NIC statistics:
rx_queue_0_packets: 63768
rx_queue_0_bytes: 93307801
...
rx_queue_1_packets: 77180
rx_queue_1_bytes: 111222183
...
tx_queue_0_packets: 14363
tx_queue_0_bytes: 4229599
...
tx_queue_1_packets: 5287
tx_queue_1_bytes: 1262219
... (기타 많은 통계)
참고: 숫자는 인터페이스가 활성화된 이후의 모든 트래픽을 반영하므로 다를 수 있습니다.
이제 네트워크 트래픽을 생성하여 이러한 카운터가 변경되는 것을 보겠습니다. 루프백 주소 (127.0.0.1), 즉 로컬 머신 자체로 몇 개의 패킷을 보내기 위해 ping 명령을 사용합니다. -c 4 플래그는 ping 에게 정확히 4 개의 패킷을 보내도록 지시합니다.
ping -c 4 127.0.0.1
4 개의 패킷이 송수신되는 것을 보여주는 출력이 표시됩니다.
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.037 ms
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3052ms
rtt min/avg/max/mdev = 0.037/0.038/0.040/0.001 ms
트래픽을 생성했으므로 다시 통계를 확인해 보겠습니다.
ethtool -S eth0
rx_queue_*_packets 및 tx_queue_*_packets 값을 다시 검토하십시오.
NIC statistics:
rx_queue_0_packets: 63879
...
rx_queue_1_packets: 77227
...
tx_queue_0_packets: 14460
...
tx_queue_1_packets: 5328
... (기타 많은 통계)
송수신 큐의 총 패킷 수가 증가했음을 알 수 있습니다. 백그라운드 시스템 활동으로 인해 ping 명령의 4 개 패킷보다 증가량이 더 많을 수 있지만, 이 변경 사항은 인터페이스가 데이터를 올바르게 송수신하고 있음을 확인시켜 줍니다. 이는 링크 상태를 확인하는 기본적인 기술입니다. 문제를 해결하는 중에 오류 카운터가 증가하는 것을 보았다면, 이는 문제의 명확한 신호가 될 것입니다.