Cra*_*bit 7 networking nic ethtool
检查网卡环形缓冲区:
# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
Run Code Online (Sandbox Code Playgroud)
人们可以将“RX/TX”设置为“预设最大值”中显示的限制,例如:
# ethtool -G eth0 rx 4096 rx 4096
Run Code Online (Sandbox Code Playgroud)
问题是:默认情况下;为什么这些设置如此低(在我拥有的每台服务器中,它们都为 256)而不是更高的值或其硬件最大功能?增加这些值是否有任何缺点(如果有的话?)?
首先,您设置的数字并不像许多人想象的那样以字节为单位,而是以描述符为单位(并且描述符大小取决于硬件)。因此,当您增加环长度时,您会请求在内核中为这些描述符分配更多内存。一般来说,您希望该内核内存位于 L1 缓存中,以便中断处理尽可能快。增加戒指尺寸会降低这种可能性,在某些情况下甚至完全不可能。
接下来是中断合并 - 一般来说,当您增加环形缓冲区大小时,NIC 将适当调整其低/高标记,并在缓冲更多数据时(频率较低)触发中断。因此,内核在中断处理期间处理这些大量数据所需的时间也会增加。
所有上述结果都会产生简单的桶效应 - 环越大,丢包概率就会降低,网络延迟就会增加。如果您通过 TCP 传输大文件,这可能完全没问题,但如果您是低延迟小数据包应用程序(即游戏等),则可能完全不受欢迎。
您看到的默认数字是两者之间的合理权衡。
归档时间: |
|
查看次数: |
3353 次 |
最近记录: |