《Web性能权威指南》笔记:TCP的优化建议

参考书籍: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张图片
  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 连接。

你可能感兴趣的:(Network,优化,性能,web,tcp,服务器)