2013-09-23 3 views
6

Я только что развернул приложение Rails 4 на Unicorn.Сколько памяти нужно использовать Rails и Unicorn?

У него нет трафика, и мне кажется, что он много ест.

Просто работает без дела с двумя единорогами, используя 253 МБ бара. Этого можно ожидать?

Я использую некоторые драгоценные камни, которые могут быть памяти голодным, 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 

единорог работники показывают три раза каждый. Это верно?

из журнала MONIT

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] 

вам нужно больше информации, чтобы сказать мне, если это высокое потребление памяти ли?

+0

http://stackoverflow.com/questions/18158496/unicorn-memory-usage-filling-up-almost-all-the-ram –

+0

@Rajarshi Das, Benjamin Tan возникла проблема с утечкой памяти. Я не думаю, что у меня есть эта проблема. Использование памяти памяти единорогов не растет, это просто (для меня) удивительно высоко. –

ответ

6

Это совершенно нормально, каждый рабочий-единорог - это отдельный процесс.

Вы видите три процесса, потому что вы просите двух рабочих. Таким образом, у вас есть мастер-процесс, который порождает работников и реагирует на пользовательские сигналы, а два других являются фактическими рабочими процессами.

Имея такие изолированные процессы, потребляет больше памяти, но на самом деле очень круто: это то, что позволяет делать изящный перезапуск, имея некоторых рабочих, которые немедленно закрываются, а другие сохраняются до тех пор, пока их обработка не обработает их запросы.

Обратите внимание, что при грациозном перезапуске (сигнал USR2) обычное потребление памяти будет на короткое время удвоено. Это связано с тем, что новый мастер начинает принимать новые запросы, порождает своих собственных работников, а предыдущий мастер не будет закрыт, пока все его рабочие не закончат обработку запросов.

Редактировать: ответить на вопрос о количестве бара, используемого каждым процессом, это тоже хорошо. Мое рабочее приложение потребляет около 315MO за процесс. Предварительный проект с примерно таким же количеством драгоценных камней, как ваш, составляет около 280 МО за каждый процесс.

+0

Спасибо, мне было нужно некоторое успокоение. –

Смежные вопросы