ruby-on-rails - 在生产中使用 ActionCable 时会出现性能问题吗?

标签 ruby-on-rails performance nginx passenger actioncable

我计划开发一个 Rails 应用程序,它有一个内容非常丰富的交互式页面,许多用户将连接到该页面。

开发进展顺利,在开发服务器上进行的短时间测试也顺利进行。

当我们开始对选定的人群进行 alpha 测试时,问题就出现了。服务器会突然停止。 Nginx 会因为队列已满而停止。我有一段时间不知所措,但环顾四周,得出的结论是 live actioncable 完全耗尽了我的内存。当用户多次重新加载订阅 actioncable 的页面时,这尤其糟糕,导致额外的进程变得活跃,完全停止服务器,只能通过重新启动 nginx 来治愈。

我目前运行一个 2 核 1GB 内存 SSD 运行 VPS 服务器进行 alpha 测试,可能最多有 20 个并发用户。我应该遇到这种负载的性能问题吗?或者应该调整代码或 redis,乘客解决这个问题?

我知道如果没有更多细节,很难说出任何明确的事情,但是可以根据这些信息进行粗略估计吗?

最佳答案

经过一些 gogoling 和测试 Nginx 设置后,将此指令添加到 passenger 的 nginx 设置中似乎显着改善了性能问题。

   location /special_websocket_endpoint {
       passenger_app_group_name foo_websocket;
       passenger_force_max_concurrent_requests_per_process 0;
   }

更多信息在这里

https://www.phusionpassenger.com/library/config/nginx/tuning_sse_and_websockets/

关于ruby-on-rails - 在生产中使用 ActionCable 时会出现性能问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39370085/

相关文章:

ruby-on-rails - rails : why is calling to_a on a string not valid in a rake task?

c++ - 循环性能内部评估的 bool 条件

ruby-on-rails - 如何在我的 Rails 项目中使用 Rails Selectize?

java - 是否可以使用 google 图表 API 将列变成超链接?

javascript - 当我需要使用 browserify-rails 时,formsy-react npm 模块会破坏 Rails 应用程序

performance - PowerShell 服务器在修改大 .xml 文件时崩溃

javascript - 滚动时 DOM 元素位置变慢 + 滚动条滚动和鼠标/触摸板滚动之间的区别

python - 独立的 Python Web 服务器和/或 nginx

logging - Nginx 记录到 access.log.1 而不是 access.log

python - web.py + uwsgi + nginx 未找到应用程序