/sys/class/net/
폴더에 있는 네트워크 인터페이스 메트릭을 수집하고 표시하는 프로그램을 작성 중입니다 .
값의 의미를 읽었을 때 rx_dropped
이 기사의 첫 번째 답변에 지정된 것과 같이 이 값에 대한 가능한 이유가 많이 있다는 결론에 도달했습니다.
https://serverfault.com/questions/528290/ifconfig-eth0-rx-dropped-packets
tx_dropped
그러나 이 값에 대한 정보를 찾을 수 없습니다 . 첫째, 이는 승인되지 않아 대기열에서 제거되는 TCP 세그먼트가 전송되는 것과 관련이 있다고 생각합니다.
그러나 이것을 실행 중인데 curl 8.8.7.5
결과적으로 Wireshark에서 볼 수 있는 재전송이 발생하지만 tx_dropped 값은 여전히 0입니다.
사실 프로그램을 실행 하는 내내 tx_dropped
.0
어떤 상황에서 증가할까요 tx_dropped
?
답변1
tx_dropped
( 및 ) 카운터 rx_dropped
는 드라이버별로 다르므로 사용 중인 드라이버의 문서나 코드 소스를 확인하여 이러한 필드가 정확히 무엇을 의미하는지 파악해야 합니다.
예를 들어, tg3
10G Intel NIC용 드라이버에는 tx_dropped
카운터를 증가시키는 다음 코드 경로만 있습니다.https://github.com/torvalds/linux/blob/fb054096aea0576f0c0a61c598e5e9676443ee86/drivers/net/ethernet/broadcom/tg3.c#L8139
최종 통화의 대부분이 goto drop;
TSO 및 GSO 오프로딩과 관련되거나 체크섬 실패로 인해 VLAN 태그가 지정된 패킷을 무시하는 부분이 어디일지 생각하는 것 같습니다. 그렇지 않으면 DMA 메모리 할당 실패만으로 tx_dropped
증가가 발생합니다.
증가가 보이면 tx_dropped
NIC의 모든 오프로드 기능을 비활성화하여 도움이 되는지 확인하는 것이 좋습니다.