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