Настройка конфигурации по памяти

Металлург1985

Знающий
Участник
Старожил I степени
Сообщения
62
Розыгрыши
0
Репутация
0
Реакции
6
Баллы
400
Хроники
  1. Grand Cursade
Исходники
Присутствуют
Сборка
Mobius
Всем привет.

В готовой сборке от Мобиуса есть файл java.cfg, в котором указано, с каким объемом памяти поднимать сервер.
В файле по умолчанию стоит так:

-server -Dfile.encoding=UTF-8 -Djava.util.logging.manager=org.l2jmobius.log.ServerLogManager -Xmx4g -Xms2g
Почитав про Джаву, понял, что параметр Xmx - это максимальный размер кучи, а Xms - первоначальный размер кучи.
После того, как с переходом с WIn10 на Win11 у меня начались криты сервера с вот такими подобными формулировками:

Native memory allocation (mmap) failed to map xxx bytes. Error detail: G1 virtual space

попробовал поэкспериментировать с обоими объемами, но не нашел явной зависимости между значениями и критами сервера. Криты бывают и при значениях -Xmx6g -Xms2g Разве что при заведомо малых значениях, например -Xmx2g -Xms1g сервер вообще не стартует.

Подскажите, из своего опыта - с какими значениям лучше всего запускать сервер?
Играю в основном один, максимум - вдвоем с ребенком. На машине, на которой запущен сервер - 16 гигов оперативы и 8 гигов виртуалки.
Или может быть нужно еще какой-то параметр, управляющий памятью, добавить, который явно не указан?

ПыСы: согласно диспетчеру задач, сервер не кушает более 4200 метров памяти.
 
Последнее редактирование:
У мобиуса бывают рандомные моменты, когда он падает в моменте. Там проблема не в выделенной памяти, хоть сколько выдели всю выжрет.
 
К слову о параметрах памяти - для Мобиуса на машине с 16GB обычно рекомендуется запускать с -Xmx8g -Xms8g (8 гигабайт в обе стороны). Это дает JVM стабильность и избегает проблем с переопределением памяти.

Если машина маленькая (4-8GB всего), то можно -Xmx4g -Xms3g или даже -Xmx6g -Xms4g.

Важно помнить: Xms это начальная память, Xmx это максимум. Если их слишком далеко друг от друга - JVM будет постоянно резизиться, это замораживает сервер.

Насчет ошибки про G1 virtual space - обычно помогает либо добавить параметр -XX:+UseG1GC, либо уменьшить Xmx немного (но не критически). Или переключиться на другой сборщик мусора.

Тестируй постепенно - запусти с 8-8, посмотри как ведет себя в течение дня. Если памяти хватает и нет фризов - не трогай. Если кушает много - уменьшай на 1-2 гига.
 
К слову о параметрах памяти - для Мобиуса на машине с 16GB обычно рекомендуется запускать с -Xmx8g -Xms8g (8 гигабайт в обе стороны). Это дает JVM стабильность и избегает проблем с переопределением памяти.

Если машина маленькая (4-8GB всего), то можно -Xmx4g -Xms3g или даже -Xmx6g -Xms4g.

Важно помнить: Xms это начальная память, Xmx это максимум. Если их слишком далеко друг от друга - JVM будет постоянно резизиться, это замораживает сервер.

Насчет ошибки про G1 virtual space - обычно помогает либо добавить параметр -XX:+UseG1GC, либо уменьшить Xmx немного (но не критически). Или переключиться на другой сборщик мусора.

Тестируй постепенно - запусти с 8-8, посмотри как ведет себя в течение дня. Если памяти хватает и нет фризов - не трогай. Если кушает много - уменьшай на 1-2 гига.
Провел следующие изменения:
- обновил мускул 5.1, который прилагался к сборке - до 9.5. Точнее не обновил, а просто поднял БД на новой версии.
- в конфигах определил вызов сборщика мусора Z вместо G1.
Результат: вместо 3700-3800 метров на старте игровой сервер стал кушать всего около 400 метров. И вроде не критует по памяти.
 
Назад
Сверху Снизу