Переход на Heroku Cedar-14 приводит к постоянному увеличению потребления памяти
Heroku недавно объявила, что Cedar-10 больше не будет поддерживаться после ноября этого года. Переход на cedar-14 привел к увеличению потребления памяти, пока я не испытал ошибки R14 "Memory Quota превышен" и пришлось перезагружать героку. Та же проблема с увеличением использования памяти произошла с единорогом до того, как я начал использовать гем unicorn_worker_killer. Известна ли проблема с кедром-14 и единорогом / юникорн_работником_киллером? Я ничего не нашел.
1 ответ
Вот хорошая ссылка для вашей "проблемы": http://blog.codeship.com/debugging-a-memory-leak-on-heroku/
Он прекрасно описывает непрерывное увеличение памяти с течением времени. Та же самая "проблема" случается и с Puma, есть и жемчужина Puma Worker Killer Gem
Стоит отметить, что вы можете настроить свою конфигурацию сборщика мусора так, чтобы она была более агрессивной. Только будьте осторожны, вы можете испортить все с одной плохой конфигурацией.
Наданный момент нет волшебного решения этой проблемы. Мы также сталкиваемся с этим в производстве, однако использование памяти иногда стабилизируется, чуть ниже предела, где начинается замена.
В качестве немедленного действия мы решили сократить количество рабочих на динамо, сократить его до 2 и динамически увеличить количество динамо с помощью HireFire.
У вас есть множество инструментов, которые могут помочь, вот список, который мы используем каждый день для отслеживания дорогостоящих запросов / распределений:
Удачи, это не простая проблема, и я не думаю, что сейчас есть универсальное верное решение.