Networking

為什麼ping這麼慢?

  • October 24, 2019

我的設置:

地窖中的伺服器 + GBit 開關。到屋頂的長電纜。GBit 開關。我在屋頂有三台電腦。一個只有 100MBit 乙太網,一台帶 GBit 的筆記型電腦和一台新電腦。

舊 100MBit 電腦的 Ping 時間:平均 0.5 毫秒 筆記型電腦的 Ping 時間:平均 0.4 毫秒 我的新電腦的 Ping 時間:平均 5 毫秒或 30 毫秒或 200 毫秒,但我經常看到 ping 時間高達 980 毫秒。一般來說,吞吐量非常不穩定。

我更換了屋頂的開關。不用找了。我更換了將新電腦連接到車頂開關的電纜。不用找了。我安裝了帶有 Intel GBit 晶片 (82541PI) 的 PCI 網卡,並使用它代替了內置的 Realtek RTL8111/8168B。不用找了。是的,我確定我將電纜插入了正確的埠,因為我現在從我的 DHCP 伺服器獲得了不同的 IP 地址。

在我使用相同作業系統(openSUSE 12.1)的舊電腦上,同樣的網卡完美執行。

ifconfig說:

     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:15679 errors:0 dropped:0 overruns:0 frame:0
     TX packets:13077 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 Sendewarteschlangenlänge:1000 

ethtool說:

   Speed: 1000Mb/s
   Duplex: Full
   Port: Twisted Pair

什麼可能導致這種行為?

**$$ EDIT $$**我發現了一些有趣的東西:

# cat /proc/interrupts 
          CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
 0:        178          0          0          0          0          0          0          0  IR-IO-APIC-edge      timer
 1:          6          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
 8:          1          0          0          0          0          0          0          0  IR-IO-APIC-edge      rtc0
 9:          0          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   acpi
12:         10          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
16:    3302428          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb1, nvidia, mei, eth1
17:        184          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   snd_hda_intel
23:      16721          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb2

如您所見,中斷 16 服務於一個 USB 埠、顯卡、“mei”(?)和eth1.

我想這可以解釋為什麼它很慢。如何在 2012 年分配中斷?

我的主機板是華碩P8Z77-M。BIOS 版本是 0802。這個 BIOS 有一個錯誤:它為所有高吞吐量設備分配相同的 IRQ (16),這可能會導致各種問題(例如,當您將文件複製到 USB 設備時凍結桌面)。

升級到版本 1206 改善了這種情況。網卡現在有自己的 IRQ 並且 ping 時間現在應該是:

64 bytes from ds.digulla (192.168.0.3): icmp_seq=1 ttl=64 time=0.197 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=2 ttl=64 time=0.252 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=3 ttl=64 time=0.200 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=4 ttl=64 time=0.239 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=5 ttl=64 time=0.215 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=6 ttl=64 time=0.204 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=7 ttl=64 time=0.244 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=8 ttl=64 time=0.190 ms
^C
--- ds.digulla ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7001ms
rtt min/avg/max/mdev = 0.190/0.217/0.252/0.027 ms

引用自:https://unix.stackexchange.com/questions/43696