博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用ethtool 命令解决Linux 网卡丢包
阅读量:2388 次
发布时间:2019-05-10

本文共 3450 字,大约阅读时间需要 11 分钟。

生产中有一台Linux设备并发比较大,droped包比较多,尤其是在跑游戏数据包的时候,存在严重的丢包现象,怀疑网卡性能不足,在更换设备前想能不有通过软件方法解决,通过网上一些资料显示,出现这种现象,也有可能是网卡buffer size 太小的原因,遂尝试更改buffer 大小解决,下面的设备运行了64天,丢包超过20多亿 .


ethtool命令用于获取以太网卡的配置信息,或者修改这些配置


-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 

-A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 


-c display the Coalesce information of the specified ethernet card。 

-C Change the Coalesce setting of the specified ethernet card。

 

-g Display the rx/tx ring parameter information of the specified ethernet card。 

-G change the rx/tx ring setting of the specified ethernet card。 


-i 显示网卡驱动的信息,如驱动的名称、版本等。 

-d 显示register dump信息, 部分网卡驱动不支持该选项。

 

-e 显示EEPROM dump信息,部分网卡驱动不支持该选项。 

-E 修改网卡EEPROM byte。 


-k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。 

-K 修改网卡Offload参数的状态。

 

-p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。 

-r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。 


-S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。 


-t 让网卡执行自我检测,有两种模式:offline or online。

 

-s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。



查看当前网卡的buffer size情况
ethtool -g eth0  
 


Ring parameters for eth0:

Pre-set maximums:

RX: 4096RX Mini: 0

RX Jumbo: 0

TX: 4096

Current hardware settings:

RX: 256

RX Mini: 0

RX Jumbo: 0

TX: 256


由于我的是rx包会有droped的情况


我们用ethtool -G eth0 rx 2048


同样对于eth1也是如此
ethtool -G eth1 rx 2048


再看看修改过后的ethtool -g eth0


Ring parameters for eth0:

Pre-set maximums:

RX: 4096

RX Mini: 0

RX Jumbo: 0

TX: 4096

Current hardware settings:

RX: 2048

RX Mini: 0

RX Jumbo: 0

TX: 2048


命令描述:


ethtool 是用于查询及设置网卡参数的命令。



使用概要:

ethtool ethx       //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等

ethtool –h        //显示ethtool的命令帮助(help)


ethtool –i ethX    //查询ethX网口的相关信息 

ethtool –d ethX    //查询ethX网口注册性信息


ethtool –r ethX    //重置ethX网口到自适应模式

ethtool –S ethX    //查询ethX网口收发包统计


ethtool –s ethX [speed 10|100|1000] [duplex half|full]  [autoneg on|off]        //设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商



使用举例:

1)[root@Linux /]# 
ethtool eth1

   Settings for eth1:

        Supported ports: [ TP ]

        Supported link modes:   10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

                                1000baseT/Full 

        Supports auto-negotiation: Yes

        Advertised link modes: 10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

                                1000baseT/Full 

        Advertised auto-negotiation: Yes

        Speed: 1000Mb/s

        Duplex: Full

        Port: Twisted Pair

        PHYAD: 0

        Transceiver: internal

        Auto-negotiation: on

        Supports Wake-on: umbg

        Wake-on: d

        Link detected: yes

2)[root@linux /]# 
ethtool -i eth1

   driver: e1000

   version: 5.0.43-k1

   firmware-version: N/A

   bus-info: 06:08.1

3)[root@linux /]#
 ethtool -S eth1

   NIC statistics:

     rx_packets: 58068300

     tx_packets: 87124083

     rx_bytes: 1589713008

     tx_bytes: 2165825901

     rx_errors: 0

     tx_errors: 0

     rx_dropped: 0

     tx_dropped: 0

     multicast: 0

     collisions: 0

     rx_length_errors: 0

     rx_over_errors: 0

     rx_crc_errors: 0

     rx_frame_errors: 0

     rx_fifo_errors: 0

     rx_missed_errors: 0

     tx_aborted_errors: 0

     tx_carrier_errors: 0

     tx_fifo_errors: 0

     tx_heartbeat_errors: 0

     tx_window_errors: 0


4)[root@linux /]# 
ethtool -s eth1 autoneg off speed 100 duplex full



相关参考:

1)[root@linux /]# which ethtool        //查询 ethtool 存放的路径

    /sbin/ethtool

2)[root@linux /]# rpm -qf /sbin/ethtool        //查询 ethtool 的版本信息

   ethtool-1.6-5

3)将 ethtool 设置永久保存在网络设备的方法

        解决方法一:

        
ethtool 设置可通过 /etc/sysconfig/network-scripts/ifcfg-ethX 文件保存,从而在设备下次启动时激活选项
。 


例如:ethtool -s eth0 speed 100 duplex full autoneg off


此指令将eth0设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,

添加如下一行: 

ETHTOOL_OPTS="speed 100 duplex full autoneg off"


         解决方法二:

        
 将ethtool设置写入/etc/rc.d/rc.local之中

转载地址:http://rjpab.baihongyu.com/

你可能感兴趣的文章
信息安全合规性产品
查看>>
google-gruyere web2.0漏洞学习平台 =w=~
查看>>
Preventing Cross-site Scripting Attacks
查看>>
WASC Distributed Web Honeypots Project Update
查看>>
安装pydev到eclipse
查看>>
[WAF]apache和modsecurity的安装
查看>>
写给换工作和找工作的同学
查看>>
Island Hopping the SpiderLabs Way
查看>>
Top Ten Web Protection Techniques of 2011
查看>>
Faster Blind MySQL Injection Using Bit Shifting
查看>>
Safely Dumping Hashes from Live Domain Controllers
查看>>
PHP CGI Argument Injection
查看>>
sgx模拟器
查看>>
SGX相关资源
查看>>
nessus 购买地址
查看>>
Google Security Architecture
查看>>
web server信息收集(附带plesk xday)
查看>>
JBoss AS Administrative Console Password Disclosure
查看>>
Securely Developing on Mobile
查看>>
ModSecurity Updates: Nginx Stable Release and Google Summer of Code Participation
查看>>