SawaPlayGO
Пользователь
- Сообщения
- 14
Я не сильно разбираюсь в процессах запуска JVM машины, но вопрос касается возможности полного отказа от off-heap памяти и использовать память только внутри кучи (heap). Флаг: -XX:MaxDirectMemorySize=0 по своей сути должен попросту отказывать от прямой памяти, а следующие два флага, -Xms16384M -Xmx16384M, выделять внутрь машины 16 гб памяти которые будут использовать для работы сервера.
Запускатор:
java -XX:MaxDirectMemorySize=0 -Xms16384M -Xmx16384M -jar server.jar --nogui
Но при запуске выходит исключение:
sawaplaygo@sawaplaygo-server:~/server/event$ sh start.sh
Exception in thread "main" java.lang.OutOfMemoryError: Cannot reserve 16384 bytes of direct buffer memory (allocated: 0, limit: 0)
at java.base/java.nio.Bits.reserveMemory(Bits.java:178)
at java.base/java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:121)
at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:330)
at java.base/sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:243)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:242)
at java.base/sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:229)
at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65)
at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:107)
at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:101)
at io.papermc.paperclip.Paperclip.readFully(Paperclip.java:311)
at io.papermc.paperclip.Paperclip.readBytes(Paperclip.java:325)
at io.papermc.paperclip.Paperclip.isJarInvalid(Paperclip.java:336)
at io.papermc.paperclip.Paperclip.checkPaperJar(Paperclip.java:118)
at io.papermc.paperclip.Paperclip.setupEnv(Paperclip.java:95)
at io.papermc.paperclip.Paperclip.main(Paperclip.java:49)
Информирующая о том что попросту не может выделить мне такое количество памяти, это скорее связано с тем, что изначально установленный -XX:MaxDirectMemorySize=0 не разрешает брать прямую память себе под heap. Есть ли такие флаги которые бы просто говорили JVM - "тебе нельзя кушать прямую память, вот на еш heap". Читал что использование прямой памяти быстрее чем внутренней, но для меня не играет это особой роли потому что когда я выделяю на свой сервер памяти он просто "слишком много жрёт", после таких действий не остаётся свободной памяти для системы и падает сервак.
Вот ссылка на статью по моей проблеме:
Запускатор:
java -XX:MaxDirectMemorySize=0 -Xms16384M -Xmx16384M -jar server.jar --nogui
Но при запуске выходит исключение:
sawaplaygo@sawaplaygo-server:~/server/event$ sh start.sh
Exception in thread "main" java.lang.OutOfMemoryError: Cannot reserve 16384 bytes of direct buffer memory (allocated: 0, limit: 0)
at java.base/java.nio.Bits.reserveMemory(Bits.java:178)
at java.base/java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:121)
at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:330)
at java.base/sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:243)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:242)
at java.base/sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:229)
at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65)
at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:107)
at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:101)
at io.papermc.paperclip.Paperclip.readFully(Paperclip.java:311)
at io.papermc.paperclip.Paperclip.readBytes(Paperclip.java:325)
at io.papermc.paperclip.Paperclip.isJarInvalid(Paperclip.java:336)
at io.papermc.paperclip.Paperclip.checkPaperJar(Paperclip.java:118)
at io.papermc.paperclip.Paperclip.setupEnv(Paperclip.java:95)
at io.papermc.paperclip.Paperclip.main(Paperclip.java:49)
Информирующая о том что попросту не может выделить мне такое количество памяти, это скорее связано с тем, что изначально установленный -XX:MaxDirectMemorySize=0 не разрешает брать прямую память себе под heap. Есть ли такие флаги которые бы просто говорили JVM - "тебе нельзя кушать прямую память, вот на еш heap". Читал что использование прямой памяти быстрее чем внутренней, но для меня не играет это особой роли потому что когда я выделяю на свой сервер памяти он просто "слишком много жрёт", после таких действий не остаётся свободной памяти для системы и падает сервак.
Вот ссылка на статью по моей проблеме:
Авторизуйтесь для просмотра ссылок.