Мы запускаем Flink на кластере из 3 ВМ.Каждая виртуальная машина имеет около 40 Go оперативной памяти.Каждый день мы прекращаем некоторые работы и начинаем новые.Через несколько дней запуск нового задания отклоняется с ошибкой «Невозможно выделить память»:
Предупреждение о виртуальной машине 64-разрядного сервера OpenJDK: INFO: ошибка os :: commit_memory (0x0000000340000000, 12884901888, 0);error = «Невозможно выделить память» (errno = 12)
Расследования показывают, что объем оперативной памяти диспетчера задач постоянно увеличивается, вплоть до превышения разрешенного значения 40 Go, хотя задания отменяются.
У меня нет (пока) доступа к кластеру, поэтому я попробовал провести несколько тестов на автономном кластере на своем ноутбуке и контролировал ОЗУ диспетчера задач:
- С помощью jvisualvm я могу видеть всеработает как задумано.Я загружаю память задания, затем очищаю ее и жду (несколько минут), пока ГБ не запустится.Куча освобождается.
- В то время как с
top
память - и остается - высокой.
Вв тот момент, когда мы перезапускаем кластер каждое утро, чтобы учесть эту проблему с памятью, но мы больше не можем себе этого позволить, поскольку нам понадобятся задания, работающие 24/7.
Я почти уверен, что это не Flinkвопрос, но может ли кто-нибудь указать мне правильное направление о том, что мы здесь делаем неправильно?