我们在CentOS 6上运行一个带有ROR的网站,有2个Web服务器和1个数据库服务器。有时它会显示消息"网站负载过重" ...有些人可以帮助你在这里查看。
我们正在使用Passenger 4.0.21与Ruby 1.8.7和Apache 2.2.15。 Web服务器正在使用默认设置运行。
以下是乘客身份的一些输出:
#passenger-status
Version : 4.0.21
Date : Thu Dec 12 02:02:44 -0500 2013
Instance: 20126
----------- General information -----------
Max pool size : 6
Processes : 6
Requests in top-level queue : 0
----------- Application groups -----------
/home/web/html#default:
App root: /home/web/html
Requests in queue: 100
* PID: 20290 Sessions: 1 Processed: 53 Uptime: 24h 3m 5s
CPU: 0% Memory : 634M Last used: 23h 16m 8
* PID: 22657 Sessions: 1 Processed: 37 Uptime: 23h 15m 55s
CPU: 0% Memory : 609M Last used: 22h 44m
* PID: 29147 Sessions: 1 Processed: 146 Uptime: 20h 47m 48s
CPU: 0% Memory : 976M Last used: 18h 20m
* PID: 22216 Sessions: 1 Processed: 26 Uptime: 10h 3m 19s
CPU: 0% Memory : 538M Last used: 9h 44m 4
* PID: 23306 Sessions: 1 Processed: 75 Uptime: 9h 43m 22s
CPU: 0% Memory : 483M Last used: 8h 44m 4
* PID: 25626 Sessions: 1 Processed: 115 Uptime: 8h 46m 42s
CPU: 0% Memory : 540M Last used: 7h 59m 5
答案 0 :(得分:24)
队列中有太多请求。从版本4.0.15开始,默认值为100。以下是http://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/的简短摘录,其中写道:
如果太多,Phusion Passenger会向客户显示错误消息 请求排队,而不是让他们等待。这么多 提高服务质量。默认情况下,“太多”是100.您可以 使用
PassengerMaxRequestQueueSize
(Apache)或passenger_max_request_queue_size
(Nginx)。
请查看有关此内容的用户指南:http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize
您可以尝试增加它或将其设置为0
以禁用它。
修改强>
您还应该检查日志以查看是否存在花费太长时间的请求。也许你的代码中有一些过程需要很长时间。我更喜欢使用NewRelic来监控这些事情。