Падение сервера по нехватке памяти

Металлург1985

Пляшущий с бубном
Участник
Сообщения
53
Розыгрыши
0
Репутация
0
Реакции
5
Баллы
250
Хроники
  1. Grand Cursade
Исходники
Отсутствуют
Сборка
Mobius
Добрый день.

Недавно обновил свою W10 до W11. После чего несколько раз наблюдал во время игры такую картину: сначала критует клиент с описанием (прошу прощения за мой английский): "Нехватка памяти. Увеличьте объем памяти или файла подкачки", вслед за чем отключается Gameserver (Loginserver при этом остается запущенным).
У меня на машине 16 ГБ памяти DDR4 3200. При работе на W10 файл подкачки был нулевым и таких критов не наблюдалось. На W11 пришлось включить 4 ГБ файла подкачки на вторичном диске, после чего криты вроде прекратились.
При этом в режиме запущенного сервера и одного окна клиента свойства системы показывали информацию о наличии 7 ГБ свободной памяти (при неактивном файле подкачке).
Подскажите, есть ли способ оптимизировать сервер по расходу памяти, кроме как включением файла подкачки или увеличением физического объема оперативной памяти?
 
Оверпостинг
Кажется разобрался.
В папке с исполняемым файлом, который стартует сервер игры, есть файл java.cfg с таким содержимым:

-server -Dfile.encoding=UTF-8 -Djava.util.logging.manager=org.l2jmobius.log.ServerLogManager -Xmx4g -Xms2g

На просторах интернета выяснил, что это конфига управления памятью, выделяемой под сервер.
Xmx4g - означает, что на сервер выделяется максимум 4ГиБ памяти
Xms2g - означает, что при старте сервера на него выделяется 2 ГиБ памяти.
Попробовал подкрутить первое значение до 5 ГиБ.
При сборке на самое деле в логах пишется, что выделено 2 ГиБ из 5, а не из 4, как до этого.
Посмотрим, будет ли падать.

Покопался на просторах интернета. Нашел вот такой рецепт:

Lineage 2 — 32-битный клиент. Он не может использовать больше ~2 ГБ виртуальной памяти (даже если у тебя 32 ГБ ОЗУ). При больших текстурах или нагруженных моделях (монстры, зеркальные объекты, тени, эффекты) → клиент «упирается в потолок» и вылетает.

Что делаем?
Запуск La2 от имени администратора + совместимость с виндой 7
Скачиваем утилиту Large Address Aware.
Распаковываем и открываем. В окне программы нажимаем Browse, находим l2.exe в папке System клиента.
Ставим галочку "Check this box to enable the application to use more than 2 GiB of memory"
После этого l2.exe получит флаг Large Address Aware и сможет использовать до 4 ГБ памяти, а не только 2.

Пробую...
Попробовал. Не советую никому повторять.
Модификация экзешника данным образом приводит к тому, что клиент при старте выжирает всю доступную память и компьютер приходится перезагружать.
 
Последнее редактирование модератором:

Назад
Сверху Снизу