LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

Nginx这个冷门参数,半数运维都不知道,却能降低26%的延迟

admin
2026年7月18日 23:24 本文热度 36
Nginx有这么一个参数,能让请求延迟降低26%甚至更多,而要做的仅仅是加一行listen配置。

我们都知道,TCP请求的逻辑是先握手,握手成功后再传输数据。
但是,你是否有观察过握手时间在整个请求时间中占比是多少呢?
先来做个TCP请求测试观察下。
从结果可以看出,握手耗时23ms,占了整个请求耗时的一半时间。
而这个握手时间就是需要优化的方向。
其实原理很简单,Nginx中开启fastopen,这个参数表示可以在握手阶段传输数据,即在SYN包中携带数据,握手和传输并行,从而降低整体延迟。
开启方式(需内核参数同步开启支持)
Nginx开启
重载服务后通过抓包验证是否开启成功,观察是否出现tfo标志位,如有则说明开启成功。
其中,fastopen=512中的512是TFO专用连接队列的长度,独立于传统的SYN队列和Accept队列。
普通的tcp请求必须走完SYN队列,Accept队列才能被Nginx处理。而TFO连接在SYN包到达时数据已经存在,内核需要立即为这个连接分配资源,这个资源就是TFO队列。
一般而言,这个队列大小设置建议为:
 峰值每秒新建连接数*平均处理时间(秒)。
例如,峰值5000连接/秒,平均处理50ms,那么对接就为250,保守一点可提升1-2倍。
那开启后效果如何呢?
我们使用支持TFO的h2load进行压测对比。
未开启TFO压测结果。
开启TFO压测结果。
从结果可以看出,开启TFO后,请求时间(time for request) 从 4.2ms 降至 3.1ms,降幅达到了26%,延迟大幅度降低。
从单个请求对比也能看出明显的延迟降低,握手时间从23ms降低到了8ms。
这还没算上高并发下连接复用带来的叠加延迟降低。压测数据中 26% 只是平均延迟的降低幅度,如果放在公网环境单次请求带来的延迟降低会更多。
但需要注意的是。
TFO携带数据在握手完成前就被应用层处理,可能加剧SYN Flood攻击。需要同步做一些安全感防护。比如:
配合 syn_cookie 保护(Linux默认启用)。
避免在公网无防护环境开启。
监控 TcpExtTCPFastOpenPassiveFail 指标变化情况等。


阅读原文:点击这里


该文章在 2026/7/18 23:24:24 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-9  粤公网安备44030602007207号