【互联网后台技术】网卡的ring buffer调整

  (2011-10-13 13:57:43)
标签: 

网卡

 

ringbuffer

 

it

分类: 互联网运维技术
服务器的NIC(eth0)上的RX dropped数量一直在增多时可以考虑试着调整ring busffer看看效果

 $ ifconfig

eth0      Link encap:Ethernet  HWaddr 00:22:19:6A:67:F8
          inet addr:172.24.85.42  Bcast:172.24.85.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:fe6a:67f8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:340149863 errors:0 dropped:970 overruns:0 frame:0
          TX packets:345666108 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:59390621898 (55.3 GiB)  TX bytes:27610690334 (25.7 GiB)
          Interrupt:82 Memory:d6000000-d6012800


RX : Receive eXchange(数据接收)
TX : Transmit eXchange(数据发送)
尝试增加rx的(ring buffer)大小。
◆ 现在配置
Ring parameters for eth0:
Pre-set maximums:
RX:             2040  ← 最大值
RX Mini:        0
RX Jumbo:       8160
TX:             255
Current hardware settings:
RX:             255  ← 配置值
RX Mini:        0
RX Jumbo:       0
TX:             255
g --show-ring
              Queries the specified ethernet device for rx/tx  ring  parameter
              information.
 

目前我还不知道用什么命令确认当前的ring buffer使用率,有知道的朋友请一定告知。 ring buffer如果已经被占满,则后续的数据帧回会覆盖当前最古老的数据帧。

 

◆ 修改配置

用以下命令可以修改大小(需要根用户权限)。

$ ethtool -G eth0 rx 512

       -G --set-ring
              Changes  the  rx/tx  ring  parameters  of the specified ethernet
              device.
注意:命令输入之后会有link down/up发生,数据通信出现瞬断。

◆ 配置之后的结果确认

Ring parameters for eth0:
Pre-set maximums:
RX:             2040  ← 最大值
RX Mini:        0
RX Jumbo:       8160
TX:             255
Current hardware settings:
RX:             512  ← 配置成功
RX Mini:        0
RX Jumbo:       0
TX:             255

 

 

◆ 确认配置修改之后的效果

确认修改配置之后是不是drop数还在不断增加,注意ring buffer更改后nic的统计数据会被reset 等待一段时间后确认dropped数量没有增加。

 $ ifconfig

eth0      Link encap:Ethernet  HWaddr 00:22:19:6A:67:F8
          inet addr:172.24.85.42  Bcast:172.24.85.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:fe6a:67f8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:340149863 errors:0 dropped:0 overruns:0 frame:0
          TX packets:345666108 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:59390621898 (55.3 GiB)  TX bytes:27610690334 (25.7 GiB)
          Interrupt:82 Memory:d6000000-d6012800

 

◆ 配置永久化


把配置加入到rc.local。

 $ vi /etc/rc.d/rc.local

 #!/bin/sh

 ethtool -G eth0 rx 512