2016-11-02 34 views
5

Przeczytałem wszystkie artykuły, które mogę znaleźć na Heroku o typach Puma i dyno i nie mogę uzyskać prostej odpowiedzi.Jak określić odpowiednią liczbę pracowników Puma i wątków do uruchomienia na dynamice Heroku Performance?

Widzę niektóre wzmianki, że liczba pracowników Puma powinna być określona przez liczbę rdzeni. Nigdzie nie mogę znaleźć tego, że Heroku ujawnia, ile rdzeni ma wydajność - M lub L-performance.

W tym artykule Heroku wskazywały na podejściu: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server

myślę, że sugerujesz, aby ustawić wątki na 1 i zwiększenie liczby pracowników Puma aż zaczniesz widzieć R14 (Pamięć) błędy, następnie wycofaj się. A następnie zwiększyć liczbę wątków, aż maksymalny czas pracy procesora, chociaż nie sądzę, że Heroku raportuje wykorzystanie procesora.

Czy ktoś może udzielić wskazówek?

(chcę też zdecydować, czy powinno się używać jednego Performance-L lub wielu Performance-M hamowni, ale myślę, że będzie jasne kiedyś dowiedzieć się, jak ustawić pracownikom & wątki)

+0

Czy w końcu się rozgryzłeś? Mam teraz dokładnie ten sam problem. Uruchomiłem 'heroku run" cat/proc/cpuinfo "--app yourappname' (informacje cpu),' heroku run "cat/proc/meminfo" --app yourappname' (informacje o pamięci), 'heroku run" top "- app yourappname' (stary linux 'top'), ale nie może dostać się do faktycznie działających" dynków ". –

Odpowiedz

8

Mapa drogowa obecnie zorientowali się tak:

  1. heroku run "cat /proc/cpuinfo" --size performance-m --app yourapp
  2. heroku run "cat /proc/cpuinfo" --size performance-l --app yourapp
  3. Zanotuj informacje o procesach masz
  4. Googling typ modelu, rodzina, model, numer kroku procesora Intel i poszukiwanie ile rdzenia ma ten procesor lub symuluje.
  5. Spójrz ten https://devcenter.heroku.com/articles/dynos#process-thread-limits
  6. zrobić kilka małych eksperymentów z standard-2X/standard-1X celu ustalenia PUMA_WORKER wartość.
  7. zna matematykę tak:

(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)

Na przykład, jeśli PUMA_WORKER wynosi 3 na moim standard-2X hamowni jako wartości początkowej, a następnie numer PUMA_WORKER na performance-m Chciałbym rozpocząć przetestować go byłoby :

16384/512 * 3 - 4 = 92

należy również rozważyć, ile pamięci zużywa aplikacji i wybrać najniższy.

EDIT: Wcześniej moja odpowiedź została napisana przed ps:exec. Można przeczytać the official document i dowiedzieć się, jak uruchomić ssh w uruchomionych dyna (ach). To powinno być łatwiejsze niż wcześniej.