netstat 中的 UDP 发送缓冲区错误

netstat 中的 UDP 发送缓冲区错误

我正在运行语音应用程序,它流式传输 UDP (RTP) 数据包以进行语音,我正在调查一些奇怪的问题,我的ifconfig ens4 | grep error计数器特别上升overrun

如果您看到 UDP 发送缓冲区错误且计数器定期增加,这是否意味着我的 TX 缓冲区已满?

[root@voice-01 ~]# netstat -suna
...
Udp:
    564240050621 packets received
    600156354 packets to unknown port received.
    3095742 packet receive errors
    621737694201 packets sent
    0 receive buffer errors
    1475161 send buffer errors
    InCsumErrors: 913878
...

接口溢出计数器

[root@voice-01 ~]# ifconfig ens4 | grep -i error
        RX errors 15147252  dropped 0  overruns 15147252  frame 0
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

溢出直接涉及高速 RX 数据,其中内核无法足够努力地处理,我也增加了 udp 缓冲区大小,但溢出计数器仍然不时增加。

sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.rmem_default=26214400 sysctl -w net.core_wrmem_default=26214400 sysctl -w net.core_wmem_default=26214400

ethtool 统计信息

[root@voice-01 ~]# ethtool -S ens4 | grep rx_dis
     [0]: rx_discards: 1764406
     [1]: rx_discards: 1655431
     [2]: rx_discards: 1418942
     [3]: rx_discards: 1880233
     [4]: rx_discards: 1950109
     [5]: rx_discards: 2227701
     [6]: rx_discards: 1095657
     [7]: rx_discards: 3154773
     rx_discards: 15147252

我有完全相同的硬件 voice-02 盒,它也处理相同数量的流量,但它几乎有zero错误

我有网卡是Broadcom Limited NetXtreme II BCM57810 10 Gigabit Ethernet

我应该尝试什么其他选择或了解出了什么问题?

相关内容