Flink 1.11.1 увеличение объема оперативной памяти с помощью RocksDBStateBackend

#apache-flink

#apache-flink

Вопрос:

В настоящее время мы переходим с Flink 1.9 на Flink 1.11.1 и наблюдаем неожиданное потребление памяти вне кучи. Наше состояние составляет около 2 ТБ, а используемый сервер состояния — RocksDB. Для безопасной миграции мы выбираем значение : state.backend.rocksdb.memory.managed true, поскольку это значение по умолчанию, начиная с flink 1.10.

В рабочей среде мы видим, что потребление памяти в диспетчере задач всегда увеличивается и увеличивается, когда мы запрашиваем точку сохранения без отмены. Пожалуйста, найдите здесь экран того, что мы видим в диспетчере задач one : скриншот диспетчера задач использования памяти

Пожалуйста, найдите здесь заданную конфигурацию :

 taskmanager.memory.task.heap.size: 30720m
taskmanager.memory.managed.size: 35840m
taskmanager.memory.task.off-heap.size: 20480m
taskmanager.memory.network.max: 5120m
  

Любые советы о том, как мы должны обеспечить ограничение использования памяти? Я следую неправильному пути, предполагая, что проблема связана с RocksDBStateBackend ?

К ВАШЕМУ сведению. 2 версии выполняются параллельно, и только Flink 1.11.1 действует таким образом.

Спасибо

Комментарии:

1. В качестве краткого примечания, все диспетчер задач теперь недоступен из-за слишком большого потребления памяти. Предел достигнут после точки сохранения.

Ответ №1:

Я столкнулся с аналогичной проблемой и решил ее, установив:

state.backend.rocksdb.memory.managed = false

Это известная проблема фрагментации памяти в ссылках Flink 1.10.x и 1.11.x. JIRA.

У меня был длинный поток в списке рассылки Flink, в котором обсуждалось то же самое.