我是 nginx 新手,目前在服务器上使用它为用户提供视频。几天前,当大约有 500-600 个用户在线时,服务器开始变得非常慢,请注意,我的服务器上有一条 1gbps 的线路,所以这不是带宽问题。服务器大约需要一两分钟才能响应,但一旦文件开始流式传输,速度就不错了,所以我猜服务器需要很长时间才能找到文件!我想知道是否有人知道我该如何解决这个问题?我已经尝试增加打开文件限制和工作者限制,但仍然没有运气!!!
如果他们知道如何解决这个问题并且有处理类似情况的经验,我也有兴趣雇人帮我解决这个问题。
问候
附加信息
total used free shared buffers cached
Mem: 7861 7695 166 0 3 4233
-/+ buffers/cache: 3459 4402
Swap: 4095 44 4051
答案1
因此,你需要自下而上地找到瓶颈。我写了一篇相当全面的文章发现性能瓶颈几年前,这应该会有所帮助。
简而言之,您需要确定导致问题的确切系统组件(使用类似工具sar
或许多等效工具),然后修复它。修复该组件后,其他组件将成为瓶颈,因此您需要重复该过程,直到性能可接受为止。
在您的具体情况下,磁盘 I/O可能是问题所在,但复杂因素是请求需要很长时间才能得到服务,但它们传输正常。我会调查哪里出现了问题——内核是否快速建立了 TCP 连接(查找三次握手tcpdump
),nginx 是否accept
快速建立连接(strace
nginx 及其工作程序),HTTP 请求处理是否需要一段时间(nginx
日志文件处于最大调试状态,cap'n)?有条不紊地解决问题将解决许多问题。
(顺便说一句,虽然我不做咨询,但我确实为一家专门提供全栈系统支持的托管公司工作,所以如果你需要付费帮助,我们随时都可以为你提供帮助)