Kafka 8 и память. Недостаточно памяти для Java Runtime Environment для продолжения
Я использую экземпляр DigiOcean с 512 мегабайтами памяти, я получаю ошибку ниже с помощью kafka.
Я не специалист по разработке Java. Как настроить kafka для использования небольшого количества барана. Это отрыв. Я не хочу платить больше за час за большую машину.
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# //hs_err_pid6500.log
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000bad30000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
Ответы
Ответ 1
Вы можете настроить размер кучи JVM, отредактировав kafka-server-start.sh
, zookeeper-server-start.sh
и так далее:
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
Параметр -Xms
указывает минимальный размер кучи. Чтобы ваш сервер, по крайней мере, запустился, попробуйте изменить его, чтобы использовать меньше памяти. Учитывая, что у вас есть только 512M, вы также должны изменить максимальный размер кучи (-Xmx
):
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
Я не уверен, какие минимальные требования к памяти kafka в конфигурации по умолчанию - возможно, вам нужно настроить размер сообщения в kafka, чтобы запустить его.
Ответ 2
Площадь: HotSpot/gc
Сводка
Crashes due to failure to allocate large pages.
On Linux, failures when allocating large pages can lead to crashes. When running JDK 7u51 or later versions, the issue can be recognized in two ways:
Before the crash happens, one or more lines similar to the following example will have been printed to the log:
os::commit_memory(0x00000006b1600000, 352321536, 2097152, 0) failed;
error='Cannot allocate memory' (errno=12); Cannot allocate large pages,
falling back to regular pages
If a file named hs_err is generated, it will contain a line similar to the following example:
Large page allocation failures have occurred 3 times
The problem can be avoided by running with large page support turned off, for example, by passing the "-XX:-UseLargePages" option to the java binary.
Ответ 3
В моем случае я ранее занимался разработкой для Android, имея андроид-студию и виртуальную машину, работавшую всю ночь, и я понял эту ошибку, когда попытался запустить свой сервер Apache Kafka. Я перезапустил свой ноутбук, чтобы сбросить память, а затем снова запустил сервер Kafka, надеюсь, это кому-нибудь поможет!..
Ответ 4
В вашей среде путь вместо JDK32 измените путь Java на JDK64. Это решило мою проблему, когда у меня было 64 ГБ оперативной памяти, и с помощью 32-битной Jvm изменение пути на JDK64 (64-битная JVM) решило проблему.