Performance

Linux 不友好的 IIS/ASP.NET :-) : 在 windows 上快速下載但在 linux 上慢

  • February 15, 2014

如果我嘗試使用 windows 請求頁面,這個特定的網站 (gops.tay.be) 會快速提供對象,但如果嘗試使用 linux,我會很慢。如果我使用瀏覽器或 curl 沒有區別:

窗戶

C:\curl>curl http://gops.tay.be/RadControls/Upload/Skins/Office2007/RadUpload.css -w %{time_total} -o 1.txt -s
0,078

Linux

[root@ ~]# curl http://gops.tay.be/RadControls/Upload/Skins/Office2007/RadUpload.css -w   %{time_total} -o 1.txt -s
5.551

[root@ ~]# host gops.tay.be
gops.tay.be has address 194.7.31.58

[root@ ~]# ip -s -o r s c |grep 194.7.31.58
194.7.31.58 from 192.168.252.176 via 192.168.252.254 dev eth0 \    cache  used 2 age   2sec ipid 0x26de rtt 98ms rttvar 110ms cwnd 10
194.7.31.58 via 192.168.252.254 dev eth0  src 192.168.252.176 \    cache  age 8sec ipid 0x26de rtt 98ms rttvar 110ms cwnd 10
local 192.168.252.176 from 194.7.31.58 dev lo  src 192.168.252.176 \    cache <local>  used 6 age 2sec iif eth0

在 Wireshark 中,兩個下載(會話初始化等)似乎都是相同的,除了 linux hastcp.options.wscale.multiplier = 4和 windows has 256. gops.tay.be伺服器一直tcp.options.wscale.multiplier = 1都有。

從 linux box 下載的任何其他內容都可以正常工作。例如對於http://cdn.sstatic.net/serverfault/all.css?v=b1f1055f1c12linux 以 . 開頭tcp.options.wscale.multiplier = 4cdn.sstatic.net具有1024.

什麼會導致這種節流?相比之下,為什麼從 Windows 盒子下載速度如此之快?

差異是由於在 Linux 中使用了 tcp 時間戳,但在 Windows 中沒有。關閉它們會使問題消失。

我不知道為什麼你會因為這個選項而失去數據包。

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