2016-11-02 3 views
5

Я прочитал все статьи, которые я могу найти в Heroku о типах Puma и dyno, и я не могу получить прямой ответ.Как определить правильное количество рабочих и рабочих Puma для работы на динамике производительности Heroku?

Я вижу, что некоторые упоминают, что количество работников Puma должно определяться количеством ядер. Я не могу найти нигде, что Heroku показывает, сколько ядер имеет производительность - M или Performance-L dyno.

В этой статье, Heroku намекал на подходе: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server

Я думаю, что они предлагая установить нити 1 и увеличить количество рабочих Puma, пока вы не начнете видеть R14 (память) ошибки, затем отступить. А затем увеличьте количество потоков до тех пор, пока CPU не выйдет из строя, хотя я не думаю, что Heroku сообщает об использовании процессора.

Может ли кто-нибудь дать указания?

(я также хочу, чтобы решить, должен ли я использовать один производительности-L или нескольких характеристик-M динамометрические стенды, но я думаю, что будет ясно, как только я выяснить, как установить рабочим & темы)

+0

Вы выяснили, в конце концов? У меня точно такая же проблема. Запустили 'heroku run 'cat/proc/cpuinfo" --app yourappname' (cpu info), 'heroku run" cat/proc/meminfo "--app yourappname' (информация о памяти),' heroku run "top" - app yourappname' (старый linux 'top'), но не может попасть в фактически' working' dynos. –

ответ

8

Дорожная карта в настоящее время я понял, как это:

  1. heroku run "cat /proc/cpuinfo" --size performance-m --app yourapp
  2. heroku run "cat /proc/cpuinfo" --size performance-l --app yourapp
  3. Запишите информацию о процессе вы имеете
  4. Тип модели, семейство, модель, шаг шага процессора Intel и поиск количества ядер, которые этот процессор имеет или имитирует.
  5. Посмотрите это https://devcenter.heroku.com/articles/dynos#process-thread-limits
  6. сделать некоторые небольшие эксперименты с standard-2X/standard-1X для определения PUMA_WORKER значение.
  7. ли математика так:

(Max Threads of your desired dyno type could support)/(Max Threads of baseline dyno could support) x (Your experiment `PUMA_WORKER` value on baseline dyno) - (Number of CPU core)

Например, если PUMA_WORKER есть 3 на моем standard-2X дин как базовые, то PUMA_WORKER номер на performance-m Я хотел бы начать, чтобы проверить это было бы :

16384/512 * 3 - 4 = 92

Вы должны также рассмотреть вопрос, сколько памяти приложение потребляет и выбрать самый низкий.

EDIT: Ранее мой ответ написан до ps:exec. Вы можете прочитать the official document и узнать, как ssh запускать dyno (ы). Это должно быть намного проще, чем раньше.

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