当前位置: 首页 > news >正文

nginx性能优化之tcp调优

本文分享自天翼云开发者社区《nginx性能优化之tcp调优》.作者:江****禄

nginx在tcp连接上有2个如下配置:tcp_nodelay on , tcp_nopush off。这两个配置在tcp连接中的具体原理如何呢?

     在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896),该问题的具体描述是:如果我们的应用程序一次产生1个字节的数据,而这个1个字节数据又以网络数据包的形式发送到远端服务器,那么就很容易导致网络由于太多的数据包而过载。比如,当用户使用Telnet连接到远程服务器时,每一次击键操作就会产生1个字节数据,进而发送出去一个数据包,所以,在典型情况下,传送一个只拥有1个字节有效数据的数据包,却要发费40个字节长包头(即ip头20字节+tcp头20字节)的额外开销,这种有效载荷(payload)利用率极其低下的情况被统称之为愚蠢窗口症候群(Silly Window Syndrome)。可以看到,这种情况对于轻负载的网络来说,可能还可以接受,但是对于重负载的网络而言,就极有可能承载不了而轻易的发生拥塞瘫痪。 

    TCP_NODELAY选项:禁用nagle算法,发送端满足两个条件马上发送:1. 报文累计到MSS或者2.收到上一个报文的ACK。 接收端的TCP delayed acknoledgement算法同样的方式起作用延迟ACK的发送,使得协议栈尽可能的合并多个ACK。默认的时间为40ms;nginx上这个选项开启之后则禁用了发送端的Nagle 算法。 tcp中nagle算法是默认开启的, 但是在网络应用中,并非使用所有的使用场景,nginx可以在需要的情况下,通过该配置关闭该行为。

 nagle算法的伪代码如下:  

if there is new data to send

  if the window size >= MSS and available data is >= MSS

    send complete MSS segment now

  else

    if there is unconfirmed data still in the pipe

      enqueue data in the buffer until an acknowledge is received

    else

      send data immediately

    end if

  end if

end if

     TCP_CORK选项: 与TCP_NODELAY相关,该选项可以认为是nagle算法的进一步增强,阻塞数据包的发送,直接手动取消TCP_CORK选项或者报文达到MSS,TCP才会将报文发送出去。即使在收到ACK的情况下,如果发送的数据不足一个MSS,则依然不会发送该报文。该选项适用于大量数据的通信性能。因为sendfile打开时,http头部和body肯定可以一起发送。   

http://www.jsqmd.com/news/46941/

相关文章:

  • 2025年11月安徽聚乙烯瓶、高阻隔瓶、聚酯瓶、农药瓶供应商排行榜:安徽金汇龙包装领跑行业
  • 2025年11月中国/安徽/聚乙烯瓶、高阻隔瓶、聚酯瓶、农药瓶厂家TOP10推荐:安徽金汇龙包装强势登顶
  • rich dataset 3D人体场景数据集
  • ICPC2025沈阳打铁日志
  • UModel 数据治理:运维世界模型构建实践
  • 【springboot】 WebMvcConfigurer的使用
  • 2025年11月21日
  • 实用指南:一文搞懂 DeepSeek API:兼容 OpenAI 接口的智能对话模型调用指南
  • 形容词Test
  • James Watsons
  • 2025年11月江苏/徐州vr设备、vr体验馆、5d影院、9d影院、拓普互动厂家推荐榜:拓普互动强势登顶
  • 计算机网络:物理层 - 实践
  • 2025年11月中国/江苏/徐州vr设备、vr体验馆、5d影院、9d影院、拓普互动厂家TOP10:拓普互动领跑榜单
  • MongoDB 平替新方案:金仓多模数据库驱动电子证照国产化落地 - 详解
  • 高考数学如何有效提分?一位家长关于分阶段选择数学老师的心得体会
  • 最佳加密货币钱包选择指南:企业级安全与功能全解析
  • 让 Maven 能找到本地 JAR 而无需把它上传到公共仓库:
  • Windows Server 2019 中文版、英文版下载 (2025 年 11 月更新)
  • TSMaster + SkyEye:更早、更快、更全面的数字化验证正在成为行业共识
  • 2025年11月中国/江苏/徐州MPP电力管,PE管,喷灌机管,建筑排水管,虹吸管综合评测与权威推荐榜单
  • Windows 11 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 11 月更新)
  • python-oop-1
  • 留学中介文书原创占比谁最大?业内锐评的专业榜单来了!
  • Windows 7 Windows Server 2008 R2 简体中文版下载 (2025 年 11 月更新)
  • 2025 年国内水质采样器厂家市场排名与品牌影响力分析报告
  • Windows Server 2016 中文版、英文版下载 (2025 年 11 月更新)
  • 2025年11月中国/江苏/徐州MPP电力管,PE管,喷灌机管,建筑排水管,虹吸管权威推荐榜:评测与选购指南
  • 留学中介文书结构榜!申请院校哪家机构逻辑最清晰?
  • 2025年包头家政服务标杆企业最新推荐:信达家政,保洁|保姆|开荒|月嫂|护工一体化服务新标准
  • 每日反思(2025年11月21日)