Процесс внезапно складывает память при запуске в контейнере докера - PullRequest
1 голос
/ 25 октября 2019

Итак, я написал сценарий, он собирает временные ряды прошлого года через вызов API (библиотека запросов), а затем вычисляет среднее значение. Это бесконечный цикл (while True:) с временем ожидания в пару минут, который запрашивает новые данные, обрезает данные старше 1 года и объединяет новые. Затем среднее значение пересчитывается. Текущий временной ряд (всего года) и среднее значение хранятся в объекте класса, который был создан до начала цикла. Так что это в основном:

Obj=Obj_Class()

while True:
    updateAverage()
    postAverage()
    time.sleep(60)

Все это работает нормально, а требуемая память относительно постоянна и составляет около 60-80 МБ.

Теперь для развертывания она была помещена в контейнер Docker ипобежал на сервер. Поэтому вызовы API были отредактированы для получения данных непосредственно из базы данных Influx, которая размещена на том же сервере. Также «postAverage ()» теперь не только печатает данные на мониторе, но и помещает их в базу данных Influx.

Это все, что было изменено. Но внезапно память (RAM) непрерывно растет (я завершил процесс после того, как он достиг 1 ГБ). Я понятия не имею, почему это может происходить. У кого-то есть идея, в чем причина? Где я мог посмотреть или что я мог посмотреть? Я знаю, что, скорее всего, невозможно сказать, не просматривая мой код, но я подумал, что кто-то здесь мог испытывать нечто подобное раньше и мог бы дать какой-то совет.

...