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 человек !!
В любом случае, когда я читаю оэто, кажется, становится все более и более неуверенным.Вопрос в следующем:
Каков наилучший способ снизить использование памяти в этом сценарии?На каком пути мне следует сосредоточиться?
- Изменить темы пумы на большее?
- Изменить работников пумы на большее?(Меньше?)
- Использовать камень
whacamole
и просто перезапускать динамометр несколько раз в день? - Переключиться на 2 динамия стандарт-1x вместо одной стандартной-2х?
- Что-то еще?Полностью отличается?
ОБНОВЛЕНИЕ (некоторые 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