Nginx 即使磁盘 io 较低,下载速度仍然很慢

Nginx 即使磁盘 io 较低,下载速度仍然很慢

我经营一家小型视频流媒体网站,我发现网站上的视频存在一些问题。我有多个 1gbit 服务器,但这些服务器的运行速度只有 1/4 端口速度。当我尝试加载某些文件时,下载需要很长时间才能开始。磁盘 IO 为 2%,我看到磁盘读取速度在 3 到 10mb/s 之间。

考虑到服务器的连接数量,磁盘读取速度非常慢。每台服务器都有四个驱动器,设置了 raid 10。这是我现在正在测试的 nginx 配置。这非常令人沮丧,因为这些是非常强大的服务器,但我觉得有些配置不正确。也许有些东西与 nginx 无关,但与 TCP 连接有关?提前感谢您的建议。

工作进程 8;
worker_rlimit_nofile 10240;
worker_rlimit_sigpending 32768;
error_log 日志/error.log crit;


事件 {
    工人连接 1240;
}


http {
    包括 mime.types;
    默认类型应用程序/八位字节流;
    发送文件;
    tcp_nopush 开启;

    访问登录关闭;
    limit_conn_log_level 信息;

    #发送文件;
    #tcp_nopush 开启;
    重置超时连接;

    服务器令牌关闭;
    自动索引关闭;

    保持活动超时 0;
    #keepalive_timeout 65;

    limit_zone 一 $binary_remote_addr 10m;
    perl_模块 perl;
    perl_require 下载.pm;

    服务器 {
        听 182;
        服务器名称本地主机;
        proxy_set_header X-真实IP $remote_addr;

        位置/nstatus {
            存根状态开启;
            #允许 127.0.0.1;
            #全部拒绝;
                        }

        地点 / {
            根html;
            索引 index.html index.htm;
        }

        #错误页面 404 /404.html;

        # 将服务器错误页面重定向到静态页面/50x.html
        #
        错误页面 500 502 503 504 /50x.html;
        位置 = /50x.html {
            根html;
        }

    }

}

答案1

您可能有兴趣通过使用aio指示。

它的文档非常详尽,并提供了示例配置块。

使用异步 I/O 将允许 nginx 多路复用对磁盘的访问,并通过堆叠请求而不等待前一个请求完成来将限制推向硬件。操作系统/驱动程序/硬件层将完成其余工作并尽快做出响应。

相关内容