我经营一家小型视频流媒体网站,我发现网站上的视频存在一些问题。我有多个 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 多路复用对磁盘的访问,并通过堆叠请求而不等待前一个请求完成来将限制推向硬件。操作系统/驱动程序/硬件层将完成其余工作并尽快做出响应。