Linux

我的網卡丟包很多

  • February 3, 2010

我有一個在 CentOS 5.3 上執行的伺服器(一個彗星聊天伺服器,會有很多 tcp 連接)。最近我發現它非常慢(http 服務和 ssh)所以我使用“ifconfig”命令來弄清楚發生了什麼。

eth0      Link encap:Ethernet  HWaddr 00:1C:C0:B5:D5:EA  
         inet addr:10.0.0.61  Bcast:10.0.0.255  Mask:255.255.255.0
         inet6 addr: fe80::21c:c0ff:feb5:d5ea/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:871861 errors:0 dropped:489662344145 overruns:0 frame:0
         TX packets:639044 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:207239658 (197.6 MiB)  TX bytes:169416201 (161.5 MiB)
         Interrupt:225 Base address:0x6000 

lo        Link encap:Local Loopback  
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:44497 errors:0 dropped:0 overruns:0 frame:0
         TX packets:44497 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:11470951 (10.9 MiB)  TX bytes:11470951 (10.9 MiB)

當我重新啟動它的網路時,一切順利。但過一段時間又會變慢。

有人可以幫忙嗎?

更新:

================================================================================

根據 Rajat 的要求,我將發布一些診斷資訊

uname -a
Linux im.cluster.myserver.com 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux


sudo /sbin/lspci | grep Ethernet
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)

sudo dmesg | grep eth0
eth0: RTL8168d/8111d at 0xffffc20000006000, 00:1c:c0:b5:d5:ea, XID 281000c0 IRQ 225
r8169: eth0: link up
r8169: eth0: link up
eth0: no IPv6 routers present
r8169: eth0: link up
eth0: no IPv6 routers present



sudo /sbin/ethtool eth0
Settings for eth0:
       Supported ports: [ TP MII ]
       Supported link modes:   10baseT/Half 10baseT/Full 
                               100baseT/Half 100baseT/Full 
                               1000baseT/Half 1000baseT/Full 
       Supports auto-negotiation: Yes
       Advertised link modes:  10baseT/Half 10baseT/Full 
                               100baseT/Half 100baseT/Full 
                               1000baseT/Half 1000baseT/Full 
       Advertised auto-negotiation: Yes
       Speed: 1000Mb/s
       Duplex: Full
       Port: MII
       PHYAD: 0
       Transceiver: internal
       Auto-negotiation: on
       Supports Wake-on: pumbg
       Wake-on: p
       Current message level: 0x00000033 (51)
       Link detected: yes



sudo /sbin/ethtool -k eth0
Offload parameters for eth0:
Cannot get device udp large send offload settings: Operation not supported
rx-checksumming: on
tx-checksumming: off
scatter-gather: off
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off


sudo /sbin/ethtool -S eth0
NIC statistics:
    tx_packets: 4483119
    rx_packets: 7443820
    tx_errors: 0
    rx_errors: 0
    rx_missed: 0
    align_errors: 0
    tx_single_collisions: 0
    tx_multi_collisions: 0
    unicast: 3591906
    broadcast: 442720
    multicast: 3851914
    tx_aborted: 0
    tx_underrun: 0

幾件事要檢查:

  • 執行ethtool eth0並查看介面上的速度/雙工狀態,然後檢查連接伺服器的埠上的開關是否具有相同的設置

$$ expected are: full duplex, 100 or 1000 MBit/s. identical on both sides $$

  • 如果沒有雙工不匹配 - 檢查交換機埠和網路介面 - 可能其中一個有故障
  • 檢查/更換跳線,可能有故障或有乾擾源

您使用的是哪個網卡它通常與驅動程序有關,您可以重新安裝它們

uname -a
lspci |grep Ethernet
dmesg |grep eth0
ethtool eth0
ethtool -k eth0
ethtool -S eth0

把這個拿出來,然後發回

引用自:https://serverfault.com/questions/54529