Page 48 - Web性能权威指南
P. 48

视应用程序的类型,可能还有必要调整服务器上的其他 TCP 设置,以便优化高速连
               接的速度、内存占用,或者其他类似的关键选项。不过,这些系统配置与平台、应
               用程序、硬件有关,超出了本书讨论范围;必要时,可以参考平台文档。但更重要
               的是要分清轻重缓急,着力解决真正的瓶颈,而不是眉毛胡子一把抓。


                          Linux 用户可以使用 ss 来查看当前打开的套接字的各种统计信息。在命令
                          行里运行 ss  --options  --extended  --memory  --processes  --info,可以看
                          到当前通信节点以及它们相应的连接设置。


               2.5.2 应用程序行为调优

               调优 TCP 性能可以让服务器和客户端之间达到最大吞吐量和最小延迟。而应用程序
               如何使用新的或已经建立的 TCP 连接同样也有很大的关系。

               •   再快也快不过什么也不用发送,能少发就少发。
               •   我们不能让数据传输得更快,但可以让它们传输的距离更短。
               •   重用 TCP 连接是提升性能的关键。

               当然,消除不必要的数据传输本身就是很大的优化。比如,减少下载不必要的资源,
               或者通过压缩算法把要发送的比特数降到最低。然后,通过在不同的地区部署服务
               器(比如,使用 CDN),把数据放到接近客户端的地方,可以减少网络往返的延迟,
               从而显著提升 TCP 性能。最后,尽可能重用已经建立的 TCP 连接,把慢启动和其
               他拥塞控制机制的影响降到最低。

               2.5.3 性能检查清单

               优化 TCP 性能的回报是丰厚的,无论什么应用,性能提升可以在与服务器的每个连
               接中体现出来。下面几条请大家务必记在自己的日程表里:

               •   把服务器内核升级到最新版本(Linux:3.2+);
               •   确保 cwnd 大小为 10;
               •   禁用空闲后的慢启动;
               •   确保启动窗口缩放;
               •   减少传输冗余数据;
               •   压缩要传输的数据;
               •   把服务器放到离用户近的地方以减少往返时间;
               •   尽最大可能重用已经建立的 TCP 连接。




               30   |   第 2 章
   43   44   45   46   47   48   49   50   51   52   53