Увеличение назначенной памяти для топологии в Storm
У меня есть кластер из 10 узлов с каждой машиной объемом 8 ГБ ОЗУ, и когда я запускаю свою топологию, выделенная память всегда пропорциональна количеству рабочих. И каждый работник занимает примерно 1 ГБ памяти. Я хочу выделить 2 ГБ каждому работнику, который я пытался установить в storm.yaml как worker.childopts: "-Xmx6g -Xms6g"
так как я бегу по три рабочих в каждом узле. Но назначенная память уменьшилась до уровня ниже 1 ГБ.
Как лучше настроить топологию?
Я получаю следующую ошибку в одном из моих болтов
java.lang.OutOfMemoryError: пространство кучи Java в java.nio.HeapByteBuffer.(HeapByteBuffer.java:57) в java.nio.ByteBuffer.allocate(ByteBuffer.java:335) в org.apache.mory.com
2 ответа
Вы можете сослаться на эту ссылку https://github.com/apache/storm/blob/master/conf/defaults.yaml
Я настраиваю 2 параметра:
worker.heap.memory.mb: 768
supervisor.memory.capacity.mb: 4096.0
Если у вас есть 10 работников, вы должны настроить supervisor.memory.capacity.mb
= (768 x 10) Это способность руководителя
Я думаю, что ваша конфигурация немного неверна. worker.childopts
настройка передается каждой рабочей JVM, поэтому, когда вы устанавливаете -Xmx6g -Xms6g
вы даете каждому из своих трех рабочих 6 ГБ памяти (всего 18 для узла)