RoR на Heroku [Производительность]: Нитки, рабочие, вакамоле или динозавры? - PullRequest
0 голосов
/ 16 мая 2018

APP: Rails 4.2.9 на стандартном Heroku-2x dyno.

DB: MySQL Heroku, надстройка ClearDB в плане дрифта

Puma: рабочие 4, число потоков 1

Не более 10 человек получают доступ к этому приложению каждый день.Что касается их использования, это нормально.Нет претензий к скорости или времени простоя.

В приложении много вещей типа .sum и .each { |n| total += n.value}, которые, как я подозреваю, потребляют память.

Проблема в том, что приложение собираетсяболее 1 ГБ использования памяти каждый день.

Разница в цене следующего динамометра просто неоправданна для такой небольшой операции.Кроме того, кажется просто сумасшествием платить в 5 раз больше, вместо того, чтобы заставить приложение работать лучше, учитывая, что персонал, который его использует, меньше, чем 10 человек !!

В любом случае, когда я читаю оэто, кажется, становится все более и более неуверенным.Вопрос в следующем:

Каков наилучший способ снизить использование памяти в этом сценарии?На каком пути мне следует сосредоточиться?

  1. Изменить темы пумы на большее?
  2. Изменить работников пумы на большее?(Меньше?)
  3. Использовать камень whacamole и просто перезапускать динамометр несколько раз в день?
  4. Переключиться на 2 динамия стандарт-1x вместо одной стандартной-2х?
  5. Что-то еще?Полностью отличается?

ОБНОВЛЕНИЕ (некоторые PS выводятся из среды разработки)

   CPU    MEM    TIME       BOSS
 -
   0.0    0.1    0:19.32    cluster worker 1: 58165
   0.0    0.4    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.17    3.11.4 (tcp://localhost:3000) [finan]
 -
   0.0    0.1    0:19.32    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.17    3.11.4 (tcp://localhost:3000) [finan]
 -
   3.3    0.3    0:19.38    cluster worker 1: 58165
   0.3    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.17    3.11.4 (tcp://localhost:3000) [finan]
 -
   25.7    2.1    0:19.94    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.17    3.11.4 (tcp://localhost:3000) [finan]
 -
   96.3    2.3    0:21.02    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.17    3.11.4 (tcp://localhost:3000) [finan]
 -
   96.7    2.4    0:22.09    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.17    3.11.4 (tcp://localhost:3000) [finan]
 -
   96.9    2.5    0:23.09    cluster worker 1: 58165
   0.1    0.4    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
   0.0    0.2    0:39.90    cluster worker 0: 58165
 -
   97.5    2.6    0:24.15    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   98.5    2.7    0:25.23    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   98.2    2.8    0:26.32    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   90.1    2.8    0:27.35    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   97.9    2.9    0:28.42    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   85.4    3.2    0:29.43    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.4    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   91.7    4.9    0:30.42    cluster worker 1: 58165
   0.0    0.2    0:39.90    cluster worker 0: 58165
   0.0    0.2    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   18.4    4.1    0:31.06    cluster worker 1: 58165
   0.0    0.1    0:39.90    cluster worker 0: 58165
   0.0    0.2    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   0.2    3.5    0:31.06    cluster worker 1: 58165
   0.0    0.1    0:39.90    cluster worker 0: 58165
   0.0    0.2    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   11.7    3.7    0:31.20    cluster worker 1: 58165
   2.5    0.4    0:39.94    cluster worker 0: 58165
   0.0    0.2    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   0.1    3.7    0:31.20    cluster worker 1: 58165
   0.0    0.4    0:39.94    cluster worker 0: 58165
   0.0    0.2    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   0.0    3.5    0:31.20    cluster worker 1: 58165
   0.0    0.4    0:39.94    cluster worker 0: 58165
   0.0    0.2    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
 -
   0.4    0.2    0:11.18    3.11.4 (tcp://localhost:3000) [finan]
   0.0    3.4    0:31.20    cluster worker 1: 58165
   0.0    0.4    0:39.94    cluster worker 0: 58165
...