【发布时间】:2018-08-21 03:47:11
【问题描述】:
我正在为我的 Ruby on Rails 应用程序在 Nginx 上运行 Passenger。
我的应用偶尔会运行一些非常密集的进程,这些进程会以 100% 的速度最大化 ruby 进程的 CPU 输出,同时一次处理最多 30 秒。
我希望能够限制我的 ruby 进程可以访问的可用 CPU。
Passenger 和 NGINX 设置良好,我只需要限制我的乘客/ruby 进程可以访问的可用 CPU。
如果我可以将其设置为每个进程的 80%,那么我的密集进程将需要更长的时间来处理(最高为 80%),但我的总 CPU 不会在 100% 时达到最高,剩下的 CPU 用于其他要访问的进程。
是否有可以执行此操作的 Linux 配置/应用程序?
【问题讨论】:
-
为什么不确定究竟是什么消耗了这么多 CPU?也许这是一个不应在请求期间运行的 CPU 密集型任务?最好的方法是在您的 CPU 使用率达到峰值时查看日志并确定最后一个请求/操作是什么或只需单击站点直到您遇到该异常
-
我知道什么在使用 CPU,这是导出/处理大量数据时的 ruby 进程。请求必须运行并且需要很长时间来处理(每天最多只运行几次),我只想让它运行,但只允许它使用 80% 的可用 CPU。
-
你知道 google.com 是什么吗?只是第一个搜索结果blog.scoutapp.com/articles/2014/11/04/…
标签: ruby-on-rails ruby linux nginx passenger