linux ring buffer设置问题

最近服务器存在掉包的现象,在网上是修改ring buffer的大小就可以避免丢包的现象
修改命令:ethtool -g eth0 rx 2047
Ring parameters for eth0:
Pre-set maximums:
RX: 2047
RX Mini: 0
RX Jumbo: 0
TX: 511
Current hardware settings:
RX: 2047
RX Mini: 0
RX Jumbo: 0
TX: 511
修改了后,服务器再没有掉包现象了。
对于这个我几个问题:
1.为什么有的服务器rx ring buffer初始值不同(200或246、247)?
2.设置这个rx ring buffer过大会不会导致服务器有什么影响?

求各位大神解答

  1. 不同服务器ring初始值不同的一种可能性是driver不一样,比如有的是intel网卡,有的realtek网卡。就是同一个厂商也会有多种类型的驱动,比如intel网卡又分e1000/igb/ixgb等多种。某种driver的不同版本的默认值也有可能存在差异。
  2. 增大ring buffer有可能会增大报文的整体处理延迟(毕竟增加了在队列里的排队时间)。