gpt4 book ai didi

ruby-on-rails - Rails 和 Unicorn 应该消耗多少内存?

转载 作者:行者123 更新时间:2023-12-04 14:59:31 24 4
gpt4 key购买 nike

我刚刚在 Unicorn 上部署了一个 Rails 4 应用程序。

它没有流量,在我看来它正在吃很多内存。

仅使用 253 MB ram 与 2 个 unicorn worker 一起闲置。这是意料之中的吗?

我使用了一些可能需要内存的 gem,gemfile

gem 'rack-ssl'
gem 'jquery-rails'
gem 'activeadmin'
gem 'american_date'
gem 'paperclip'
gem 'cancan'
gem 'pdfkit'
gem 'newrelic_rpm'
gem 'select2-rails'
gem 'whenever', :require => false
gem 'paymill'
gem 'pg'
gem 'queue_classic'
gem 'rails-observers'
gem 'actionpack-page_caching'
gem 'actionpack-action_caching'
gem 'sass-rails', :github => 'rails/sass-rails'
gem 'coffee-rails', :github => "rails/coffee-rails"
gem 'uglifier', '>= 1.3.0'
gem 'jquery-ui-rails'
gem 'foreman'
gem 'jquery-turbolinks'
gem 'turbolinks'
gem 'unicorn'
gem 'capistrano'
gem 'rvm-capistrano'

对于 htop
  CPU[|                                                   0.7%]     Tasks: 38, 10 thr; 1 running
Mem[||||||||||||||||||||||||| 253/995MB] Load average: 0.27 0.17 0.14
Swp[ 0/0MB] Uptime: 11:00:36

PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
844 deployer 20 0 467M 109M 2560 S 0.0 11.0 0:04.00 unicorn worker[1] -D -c /home/deployer/apps/application/shared/config/unicorn.rb -E production
803 deployer 20 0 467M 109M 2560 S 0.0 11.0 0:00.00 unicorn worker[1] -D -c /home/deployer/apps/application/shared/config/unicorn.rb -E production
800 deployer 20 0 467M 109M 2560 S 0.0 11.0 0:04.33 unicorn worker[1] -D -c /home/deployer/apps/application/shared/config/unicorn.rb -E production
837 deployer 20 0 467M 109M 2560 S 0.0 11.0 0:03.48 unicorn worker[0] -D -c /home/deployer/apps/application/shared/config/unicorn.rb -E production
802 deployer 20 0 467M 109M 2560 S 0.0 11.0 0:00.03 unicorn worker[0] -D -c /home/deployer/apps/application/shared/config/unicorn.rb -E production
798 deployer 20 0 467M 109M 2560 S 0.0 11.0 0:03.85 unicorn worker[0] -D -c /home/deployer/apps/application/shared/config/unicorn.rb -E production
801 deployer 20 0 270M 107M 5992 S 0.0 10.8 0:00.00 unicorn master -D -c /home/deployer/apps/application/shared/config/unic

unicorn worker 每人出现 3 次。这样对吗?

从监控日志
System   Status Load    CPU Memory                  Swap
server Running [0.02] [0.09] 25.4% [259492 kB] 0.0% [0 kB]
Process Status Uptime CPU Total Memory Total
unicorn Running 10h 48m 0.0% 32.8% [334828 kB]
unicorn_worker_0 Running 10h 47m 0.0% 11.0% [112252 kB]
unicorn_worker_1 Running 10h 47m 0.0% 11.0% [112300 kB]
postgresql Running 10h 48m 0.0% 1.7% [18100 kB]
nginx Running 10h 48m 0.0% 0.8% [8592 kB]

您是否需要更多信息来告诉我这是否是高内存消耗?

最佳答案

这是完全正常的,每个 unicorn worker 都是一个独立的过程。

你看到三个进程,因为你要求两个 worker 。所以你有一个主进程,它产生 worker 并响应用户信号,另外两个是实际的工作进程。

拥有这样的隔离进程会消耗更多内存,但实际上非常酷:它允许进行正常重启,让一些工作人员立即关闭,而其他工作人员保持事件状态,直到他们完成处理他们的请求。

另请注意,当您执行正常重启(USR2 信号)时,您通常的内存消耗将在短时间内翻倍。那是因为一个新的 master 开始接受新的请求,产生它自己的 worker,并且之前的 master 在它的所有 worker 完成处理请求之前不会关闭。

编辑:回答每个进程使用的 ram 数量,这也很好。我的工作应用程序每个进程消耗大约 315MO。一个与你的 gem 差不多的预发布副项目是每个进程大约 280MO。

关于ruby-on-rails - Rails 和 Unicorn 应该消耗多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18954763/

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