我正在运行 Rails 应用程序服务器。我的设置是:
- Apache 2,对 https 和 ssl 客户端证书使用 mod_ssl
- Phusion 乘客 5
- 导轨 4
- 红宝石 2.1
我使用 NewRelic 来监控正在运行的应用程序。我最近启用了对请求排队延迟的监控,主要是出于好奇。我惊讶地发现请求队列中的延迟通常与实际的 ruby 代码和数据库执行时间一样长或更长。~200 毫秒似乎很高,对吧?
大多数在线信息表明,当请求队列正在等待工作人员可用时会发生这种情况,但事实并非如此。如下所示,我们几乎没有使用我们预置的实例。在高峰期,我们很少会超过 30% 的利用率。
其他一些注意事项:
- Apache 和Passenger 驻留在同一台服务器上,因此不会出现由于系统时钟不同步而导致的错误计时问题。
- 关于 SSL 处理,Apache 获取客户端 SSL 证书并将其作为请求头附加。然后,rails 应用程序处理其余的处理。
这里可能是什么问题?