Linux

Debian + nginx/apache 的低吞吐量

  • March 17, 2015

在同一個 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。

我不知道從這裡去哪裡。

有人對調查或解決此問題有什麼建議嗎?

終於問題解決了。

  1. 我們的交換機已重新啟動,並且再也沒有重新上線。所以我們改變了交換機,現在 LAN 端的性能與預期一樣。
  2. 對於 WAN 問題,QoS 限制了客戶端的頻寬。

不需要對 TCP 堆棧進行調整。

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