參考書籍:Web性能權威指南
1. 伺服器配置調優
- 伺服器更新到最新核心
- TCP的最佳實踐以及影響其性能的底層算法一直在與時俱進,而且大多數變化都隻在最新核心中才有實作。讓你的伺服器跟上時代是優化發送端和接收端TCP棧的首要措施。
- 增大TCP的初始擁塞視窗
- 加大起始擁塞視窗可以讓TCP在第一次往返的時候就傳輸較多資料,而随後的速度提升也會很明顯。對于突發性的短暫連接配接,這也是特别關鍵的一個優化。
- 禁用慢啟動重新開機 SSR(Slow-Start Restart)
- SSR對于那些會出現突發空閑的長周期TCP連接配接(比如HTTP的keep-alive連接配接)有很大的影響。在連接配接空閑時禁用慢啟動可以改善瞬時發送資料的長TCP連接配接的性能。
- 視窗縮放 (RFC 1323)
- 啟用視窗縮放可以增大最大接受視窗大小,可以讓高延遲的連接配接達到更好吞吐量。
《Web性能權威指南》筆記:TCP的優化建議1. 伺服器配置調優2. 應用程式行為調優3. 性能檢查清單
- 啟用視窗縮放可以增大最大接受視窗大小,可以讓高延遲的連接配接達到更好吞吐量。
- TCP快速打開
- 在某些條件下,允許在第一個SYN分組中發送應用程式資料。TFO(TCP Fast Open,TCP快速打開)是一種新的優化選項,需要用戶端和伺服器共同支援。為此首頁要搞清楚你的應用程式是否可以利用這個特性。
2. 應用程式行為調優
- 消除不必要的資料傳輸,能少發就少發。
- 減少下載下傳不必要的資源
- 通過壓縮算法把需要發送的資料的比特數降到最低
- 讓資料傳輸的距離變短
- 在不同的地區部署服務 器(比如,使用 CDN(Content Delivery Network,即内容分發網絡)),把資料放到接近用戶端的地方,可以減少網絡往返的延遲, 進而顯著提升 TCP 性能。
- 盡可能重用已經建立的 TCP 連接配接,把慢啟動和其 他擁塞控制機制的影響降到最低。
3. 性能檢查清單
- 把伺服器核心更新到最新版本(Linux:3.2+);
- 確定 cwnd 大小為 10;
- 禁用空閑後的慢啟動;
- 確定啟動視窗縮放;
- 減少傳輸備援資料;
- 壓縮要傳輸的資料;
- 把伺服器放到離使用者近的地方以減少往返時間;
- 盡最大可能重用已經建立的 TCP 連接配接。