sendfile_max_chunk
sendfile_max_chunk 指令在 NGINX 中设置使用 sendfile 系统调用发送数据的最大大小。 — NGINX HTTP Core
sendfile_max_chunk
httpserverlocation
语法sendfile_max_chunk size;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
`sendfile_max_chunk` 指令确定在单次操作中使用 `sendfile` 系统调用能够传输的最大数据量(以字节为单位)。这在优化高负载服务器上的文件发送性能时尤为有用,因底层操作系统的限制可能需要调整以优化吞吐量。 设置后,该指令限制在一次 `sendfile` 调用中可传输的数据量,这有助于管理内存使用并避免在大文件传输时阻塞。如果被发送文件的大小超过指定的块大小,NGINX 将把传输拆分为多个 `sendfile` 调用,每个调用的大小上限为定义的最大块大小。此行为可确保存储资源得到高效利用,并能在高负载下提高整体服务器响应性。 该指令在提供静态文件(如图像或视频)时尤其相关,在扩展工作负载下如果没有此限制性能可能会下降。调整此参数可以让运维人员在资源消耗与应用性能之间找到平衡,是 NGINX 性能调优中的一个重要考虑因素。
配置示例
http {
sendfile on;
sendfile_max_chunk 1m;
}⚠
将该值设置得过低可能导致数据传输效率低下,并由于频繁的上下文切换而增加 CPU 使用率。
⚠
在文件大小较小的环境中,较高的值可能收益甚微,并可能不必要地增加资源管理的复杂性。