Networking
為什麼ping這麼慢?
我的設置:
地窖中的伺服器 + 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