Помогите Освобождение оперативы

SamaraGamer

Активный участник
Пользователь
Баллы
76
Ник в Minecraft
SamaraGamer
Не понимаю, как работает оперативка у сервера, а точнее, как она освобождается. Я выставил 10 гигов для сервера, оператива потихоньку сжирается, сжирается, потом доходит до 5 с чем-то гигов и освобождается. Но, когда я запускаю прогрузку мира через WorldBorder, оператива сжирается окончательно и происходит фриз сервера секунд на 5. Почему происходит так - понятно, непонятны последствия - после фриза освобождается не вся оператива, а чуть меньше 2 гигов, даже после выключения прогрузки, помогает только рестарт сервера. Почему оператива освобождается в таком маленьком объёме?
 
Строка запуска, если что
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:+UseLargePagesInMetaspace -jar server.jar nogui
 
с ходу нагуглились параметры jvm
MaxHeapFreeRatio и MinHeapFreeRatio
MaxHeapFreeRatio вроде по дефолту 70%, т.е. он освободит лишнюю память только если свободной памяти больше 70%
кстати, почему тебя волнует свободная

а, у тебя вообще -Xms10G
т.е. тебя волнует не выделенная память, а сам хип. а попробуй вызвать full gc и посмотреть сколько останется после него
g1gc может быть слишком ленивым и пока память не нужна новая он не будет мусор собирать старый
 
Последнее редактирование:
Назад
Верх Низ