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

结果,现代高速网络中 TCP 连接的数据传输速度,往往会受到接收端和发送端之
                 间往返时间的限制。另外,尽管带宽不断增长,但延迟依旧受限于光速,而且已经
                 限定在了其最大值的一个很小的常数因子之内。大多数情况下,TCP 的瓶颈都是延
                 迟,而非带宽(参见图 2-5)。


                 2.5.1 服务器配置调优

                 在着手调整 TCP 的缓冲区、超时等数十个变量之前,最好先把主机操作系统升级到
                 最新版本。TCP 的最佳实践以及影响其性能的底层算法一直在与时俱进,而且大多
                 数变化都只在最新内核中才有实现。一句话,让你的服务器跟上时代是优化发送端
                 和接收端 TCP 栈的首要措施。


                            表面看来,升级服务器内核到最新版本好像是件易如反掌的事儿。但在实
                            践中,升级经常会遭遇阻力。很多现有服务器已经针对特定的内核版本进
                            行了调优,而系统管理员并不情愿升级。
                            实事求是地讲,每一次升级都有相应的风险。但为了获得最大的 TCP 性
                            能,升级恐怕也是唯一最佳的选择。

                 有了最新的内核,我们推荐你遵循如下最佳实践来配置自己的服务器。

                 •   增大TCP的初始拥塞窗口
                   加大起始拥塞窗口可以让 TCP 在第一次往返就传输较多数据,而随后的速度提
                   升也会很明显。对于突发性的短暂连接,这也是特别关键的一个优化。

                 •   慢启动重启
                   在连接空闲时禁用慢启动可以改善瞬时发送数据的长 TCP 连接的性能。

                 •   窗口缩放(RFC 1323)
                   启用窗口缩放可以增大最大接收窗口大小,可以让高延迟的连接达到更好吞
                   吐量。

                 •   TCP快速打开
                   在某些条件下,允许在第一个 SYN 分组中发送应用程序数据。TFO(TCP  Fast
                   Open,TCP 快速打开)是一种新的优化选项,需要客户端和服务器共同支持。
                   为此,首先要搞清楚你的应用程序是否可以利用这个特性。

                 以上几个设置再加上最新的内核,可以确保最佳性能:每个 TCP 连接都会具有较低
                 的延迟和较高的吞吐量。




                                                                             TCP的构成   |   29
   42   43   44   45   46   47   48   49   50   51   52