部署 网站出现 This website is under heavy load 怎么破

falconlux · 2014年08月30日 · 最后由 feng88724 回复于 2016年05月30日 · 11755 次阅读

服务器是用的阿里云,然后 cpu,内存和网络都很富余~ 系统是 ubuntu + nginx + passenger 的,感觉是 passenger 配置的问题~ 有人遇到过同样的问题过么~ 求建议~~

出现 website is under heavy load 这种情况一般是当前请求过多,Passenger 处理不过来,尤其是在刚刚部署完,Passenger 重启的时候这个问题会比较明显。在有比较多的文件上传、数据导出的时候,也会严重阻塞 Passenger 对其它请求的处理,也比较容易导致 website is under heavy load。所以我的建议是:

1、在config/environments/production.rb中,设置

config.assets.compile = false

理由请见: http://stackoverflow.com/questions/8821864/config-assets-compile-true-in-rails-production-why-not

2、限制 Nginx 文件上传的大小。

3、将 Passenger 换成 Unicorn,进行热部署,减少刚部署完成后大量请求阻塞,Unicorn 和 Nginx 的具体配置请参见: https://ruby-china.org/topics/12033

配置passenger_min_instances为一个比较合理的值(默认 1 太小了),比如 7。

@falconlux 同样的问题 请问楼主解决了么

在 nginx.conf 中加入 passenger_max_pool_size=60 @lxyluu

#4 楼 @falconlux ruby 该用多进程还是多线程来解决 heavy load 的问题

#2 楼 @ericguo ruby 该用多进程还是多线程来解决 heavy load 的问题

passenger_pool_idle_time,https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_pool_idle_time

这个参数应该也有效。默认 300s 有点大了。

passenger_max_request_queue_size, https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_max_request_queue_size

请求队列,个人认为加大的意义不大。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号