【发布时间】:2012-06-25 02:52:12
【问题描述】:
我对优化我的 Ruby on Rails 3.1.3 应用程序的 Unicorn 设置的方法很感兴趣。我目前在 High-CPU Extra Large Instance 上生成 14 个工作进程,因为我的应用程序在负载测试期间似乎受 CPU 限制。在模拟负载测试中,每秒大约有 20 个请求重播请求,我的实例上的所有 8 个内核都达到峰值,并且盒子负载峰值高达 7-8。每个独角兽实例使用大约 56-60% 的 CPU。
我很好奇有什么方法可以优化它?我希望能够每秒将更多请求集中到这种大小的实例上。内存和所有其他 I/O 一样完全正常。在我的测试过程中,CPU 正在下降。
【问题讨论】:
-
你使用 ruby 1.9 吗?如果没有,那可能会有所帮助。
-
分析你的代码(ruby-prof)找出它为什么慢,尝试重写瓶颈。重复直到足够快。 0 信息我们无法猜测为什么您的代码没有更快
-
@randombits,如果每个 CPU 内核每秒只能处理约 2 个请求,那么您的应用程序内部的某些东西会严重缓慢。您无需优化 Unicorn 设置。您需要优化您的应用程序代码。您还没有发布任何分析数据——是因为设置和运行分析器似乎很麻烦吗?或者,也许您仍然希望通过调整 Unicorn 配置来解决问题? (不能。)对于初学者,请查看您的 Rails 日志,识别缓慢的请求,并告诉我们它报告的“DB”、“View”和总时间。
标签: ruby-on-rails ruby optimization load unicorn