Nginx 高性能传输三剑客:sendfile、tcp_nopush 与 tcp_nodelay 深度解析一句话总结:sendfile减少内存拷贝,tcp_nopush合并小包,tcp_nodelay禁用延迟确认——三者协同可让静态文件下载吞吐提升 30%+。但配错组合反而会拖慢 API 响应!本文将从 Linux 内核机制到 Nginx 源码,彻底讲清它们的适用边界。一、为什么这三个指令如此重要?一个 CDN 节点的性能瓶颈故事你负责一个全球 CDN 节点,日均服务 10 亿次静态资源请求。监控显示:CPU 使用率高达 70%,主要消耗在memcpy小文件(10KB)QPS 上不去,延迟波动大大文件(100MB)下载带宽未打满排查发现:Nginx 默认配置未针对不同场景优化传输策略。而sendfile、tcp_nopush、tcp_nodelay正是解决这些问题的关键开关。它们不是“开就快”,而是需要根据业务类型精准搭配。