Os::commit_memory не удалось; ошибка=Недостаточно места (errno=12)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Os::commit_memory не удалось; ошибка=Недостаточно места (errno=12)

Сообщение Anonymous »

У меня есть приложение весенней загрузки, работающее на компьютере с Ubuntu 20 ec2, где я создаю около 200 000 потоков для записи данных в Kafka. Однако он неоднократно терпит неудачу со следующей ошибкой
[138.470s][warning][os,thread] Attempt to protect stack guard pages failed (0x00007f828d055000-0x00007f828d059000).
[138.470s][warning][os,thread] Attempt to deallocate stack guard pages failed.
OpenJDK 64-Bit Server VM warning: [138.472s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
INFO: os::commit_memory(0x00007f828cf54000, 16384, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 16384 bytes for committing reserved memory.

Я пытался увеличить память моего экземпляра ec2 до 64 ГБ, но это оказалось бесполезно. Я использую статистику Docker и htop для мониторинга объема памяти, занимаемого процессом, и когда он достигает около 10 ГБ, происходит сбой с данной ошибкой.
Я также пробовал увеличить размер кучи и максимальное значение. память для процесса.
docker run --rm --name test -e JAVA_OPTS=-Xmx64g -v /workspace/logs/test:/logs -t test:master

Ниже мой код
final int LIMIT = 200000;
ExecutorService executorService = Executors.newFixedThreadPool(LIMIT);
final CountDownLatch latch = new CountDownLatch(LIMIT);
for (int i = 1; i {
try {
kafkaTemplate.send("rf-data", Integer.toString(123), "asdsadsd");
kafkaTemplate.send("rf-data", Integer.toString(123), "zczxczxczxc");
latch.countDown();
} catch (Exception e) {
logger.error("Error sending data: ", e);
}
});
}
try {
latch.await();
} catch (InterruptedException e) {
logger.error("error ltach", e);
}


Подробнее здесь: https://stackoverflow.com/questions/715 ... e-errno-12
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»