gpt4 book ai didi

ruby-on-rails - 优化 Heroku、Rails 和 Unicorn : defining proper configuration options like how many worker processes?

转载 作者:行者123 更新时间:2023-12-03 18:23:08 24 4
gpt4 key购买 nike

我们有以下 Unicorn 的配置文件。我们在 Rails 3.2.12 和 Mongoid 3.1.16 上。我们应该如何确定要使用多少工作进程?我们是否可以包括其他选项来提高性能?

谢谢!

# config/unicorn.rb
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 25
preload_app true

before_fork do |server, worker|
# TERM signals indicates the Heroku Dyno is shutting down
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
end

after_fork do |server, worker|
# TERM signals indicates the Heroku Dyno is shutting down
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
end
end

最佳答案

这个当前接受的答案中有一些不正确的信息。

根据 heroku docs on dyno size ,2X dynos 具有 2X cpu 份额,而不仅仅是双倍内存:

enter image description here

无论如何,由于可以使用的 unicorn worker 数量与内存占用量有关,因此您很可能会从 2X dyno 中获得更高的性能,您可以更好地使用可用内存。

例如,您可以使用 7 名 unicorn worker 运行一个 2X dyno,而使用 3 名 unicorn worker (总共 6 个)运行两个 1X dyno。使用更多 dynos 时,也可能会有一些路由开销。

通过 heroku docs on optimizing dyno usage :

While highly app dependent, the following table lists some rough rules of thumb for how many Unicorn workers can be run on each dyno size:



enter image description here

考虑到这一点,优化使用最重要的事情是总内存占用。您可以启用heroku 的 log-runtime-metrics 以将 实际 内存和cpu 使用信息打印到heroku 日志中。它看起来像这样:
source=web.1 dyno=heroku.2808254.d97d0ea7-cf3d-411b-b453-d2943a50b456 sample#load_avg_1m=2.46 sample#load_avg_5m=1.06 sample#load_avg_15m=0.99
source=web.1 dyno=heroku.2808254.d97d0ea7-cf3d-411b-b453-d2943a50b456 sample#memory_total=21.00MB sample#memory_rss=21.22MB sample#memory_cache=0.00MB sample#memory_swap=0.00MB sample#memory_pgpgin=348836pages sample#memory_pgpgout=343403pages

正如上面链接的文章中提到的,您可以将它与 librato add-on 结合使用来绘制随时间变化的使用情况,以更好地了解您的应用程序的高峰使用需求:

enter image description here

NewRelic add on 可用于类似目的。

希望有帮助。

关于ruby-on-rails - 优化 Heroku、Rails 和 Unicorn : defining proper configuration options like how many worker processes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com