天天看點

《Web性能權威指南》筆記:TCP的優化建議1. 伺服器配置調優2. 應用程式行為調優3. 性能檢查清單

參考書籍:Web性能權威指南

1. 伺服器配置調優

  1. 伺服器更新到最新核心
    • TCP的最佳實踐以及影響其性能的底層算法一直在與時俱進,而且大多數變化都隻在最新核心中才有實作。讓你的伺服器跟上時代是優化發送端和接收端TCP棧的首要措施。
  2. 增大TCP的初始擁塞視窗
    • 加大起始擁塞視窗可以讓TCP在第一次往返的時候就傳輸較多資料,而随後的速度提升也會很明顯。對于突發性的短暫連接配接,這也是特别關鍵的一個優化。
  3. 禁用慢啟動重新開機 SSR(Slow-Start Restart)
    • SSR對于那些會出現突發空閑的長周期TCP連接配接(比如HTTP的keep-alive連接配接)有很大的影響。在連接配接空閑時禁用慢啟動可以改善瞬時發送資料的長TCP連接配接的性能。
  4. 視窗縮放 (RFC 1323)
    • 啟用視窗縮放可以增大最大接受視窗大小,可以讓高延遲的連接配接達到更好吞吐量。
      《Web性能權威指南》筆記:TCP的優化建議1. 伺服器配置調優2. 應用程式行為調優3. 性能檢查清單
  5. TCP快速打開
    • 在某些條件下,允許在第一個SYN分組中發送應用程式資料。TFO(TCP Fast Open,TCP快速打開)是一種新的優化選項,需要用戶端和伺服器共同支援。為此首頁要搞清楚你的應用程式是否可以利用這個特性。

2. 應用程式行為調優

  1. 消除不必要的資料傳輸,能少發就少發。
    • 減少下載下傳不必要的資源
    • 通過壓縮算法把需要發送的資料的比特數降到最低
  2. 讓資料傳輸的距離變短
    • 在不同的地區部署服務 器(比如,使用 CDN(Content Delivery Network,即内容分發網絡)),把資料放到接近用戶端的地方,可以減少網絡往返的延遲, 進而顯著提升 TCP 性能。
  3. 盡可能重用已經建立的 TCP 連接配接,把慢啟動和其 他擁塞控制機制的影響降到最低。

3. 性能檢查清單

  • 把伺服器核心更新到最新版本(Linux:3.2+);
  • 確定 cwnd 大小為 10;
  • 禁用空閑後的慢啟動;
  • 確定啟動視窗縮放;
  • 減少傳輸備援資料;
  • 壓縮要傳輸的資料;
  • 把伺服器放到離使用者近的地方以減少往返時間;
  • 盡最大可能重用已經建立的 TCP 連接配接。