Linux
Debian + nginx/apache 的低吞吐量
在同一個 LAN/WAN 上,我有一個執行 IIS 7.5 的 Windows server 2012 伺服器和一個執行 Nginx 1.4.5 的 Debian (wheezy) 伺服器。兩台伺服器都連接到同一個 LAN/WAN。
當我通過 wan(網際網路)從 debian 伺服器下載 10MB 文件時,
curl
報告平均下載速度為1157k。使用相同的文件,通過相同的網路但在 Windows 伺服器上,Curl 報告平均下載速度為3588k。多次執行腳本,發現 debian 伺服器的平均下載速度變化很大,有時我只得到400k,而 Windows 伺服器相當穩定。在 LAN 而不是 WAN 上進行測試給了我更好的性能,但 Windows 伺服器在那裡的性能也好得多。Windows 伺服器正在生產中並且有一定的負載,而 debian 伺服器除了我的測試之外沒有負載。
客戶端,如果我使用wireshark擷取TCP流量,我對tcp擷取不是很熟悉,但我發現debian的TCP視窗大小小於windows伺服器的一些事實。
德比安:
Window size value: 913 Calculated window size: 14608 Window size scaling factor: 16
窗戶:
Window size value: 256 Calculated window size: 65536 Window size scaling factor: 256
- 我試過 Apache 而不是 Nginx,它沒有改變任何東西。
- 我在網際網路上嘗試了不同的“Linux tcp 調整”指南,但沒有任何明顯的影響。
- 兩台伺服器的 Ping 時間相同。
- 不涉及 SSL/TLS。
我不知道從這裡去哪裡。
有人對調查或解決此問題有什麼建議嗎?
終於問題解決了。
- 我們的交換機已重新啟動,並且再也沒有重新上線。所以我們改變了交換機,現在 LAN 端的性能與預期一樣。
- 對於 WAN 問題,QoS 限制了客戶端的頻寬。
不需要對 TCP 堆棧進行調整。