Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Форум для новичков[JAVA]/Оптимизация потребления ОЗУ сервером
Поиск

Оптимизация потребления ОЗУ сервером

13 ответов425 просмотровСейчас просматривают: 1
П
Павел

Пользователь

Новичок

Постов: 12

На форуме с: 09.10.2008

Рейтинг: 0

· 02.11.2009, 11:56

Сборка: L2dream 1766 Gracia part2.
Краткое изложение сути проблемы: Без геодаты с 2 гигами ОЗУ сборка ест около 50% ОЗУ(то-есть около гига). Геодата с 2 гигами не запускалась. Поствил 4 гига, запустилась, сам сервер тоже запустился довольно быстро. Но подлагивает по той причине, что теперь есть 88% ОЗУ. Я впервые вижу, чтобы сервер ел так много ресурсов машины.
Вопрос: Как можно оптимизировать затраты ОЗУ, чтобы сервер с геодатой так сильно не загружали комп.
Мои соображения по этому поводу: Я думаю, что дело в распределении ОЗУ под процессы явы в скриптах запуска сервера. Но так как я не особо понимаю, какие элементы сервера используют -xmx, -xms и -xmn, т опрошу вашей помощи. Вот, собственно, оригинальный конфиг геодаты и скрипт запуска сервера:


Раскрывающийся текст
#===================================================#
# Даный файл является конфигуратором геодаты. #
#===================================================#

# Загружать геодату
EnableGeodata = True

# Отладка гео, помечает путь монетками + выводит информацию в чат
# Работает только для ГМ.
GeodataDebug = False

# Хост для соединения с L2J-GeoEditor
GeoEditorHost = 127.0.0.1

# Паттерн для файлов геодаты.
# Файлы что подойдут под паттерн будут считатся файлами геодаты
GeoFilesPattern = (\\d{2}_\\d{2})\\.l2j

# Сглаживает путь.
# Стоит отключать только для дебага.
PathClean = True

# Показывать какой файл загружаем, при загрузке сервера?
ShowGeodataLoadFile = False

# Сильно ускоряет поиск, как влияет на качество неизвестно
# 0 - отключить, 1 - только начало пути, 2 - начало и конец пути
PathFindBoost = 2

# Обрабатывать ли двери в геодате
# Настройка влияет на ГеймСервер
AllowDoors = True

# Мобы срезают углы, за счет чего нагрузка падает в несколько раз
# Могут застревать на поворотах и некрасиво обходить деревья
SimplePathFindForMobs = True

# Разрешать игроку падать с горизонтальной стены если он кликает по самой стене
AllowFallFromWalls = False

# Движение клавиатурой (стрелочками)
AllowMoveWithKeyboard = True

# Максимальная высота ступеньки
MaxZDiff = 32

# Вес "плохих" клеток первого плана
Weight1 = 8

# Вес "плохих" клеток второго плана
Weight2 = 4

# оптимизация размещение гео в памяти, экономит около 150Мб памяти
# для оптимизации нужно сначала нужно сгенерировать карты совпадений
# java -Xms1g -Xmx1400m -Xmn192m -XX:PermSize=16m -cp l2dserver.jar l2d.debug.benchmark.GeoMatchesGenerator
CompactGeoData = False


Раскрывающийся текст
#!/bin/bash

DBHOST=localhost
USER=root
PASS=
DBNAME=L2Dreamdb

while :;
do
#mysqlcheck -h $DBHOST -u $USER --password=$PASS -s -r $DBNAME>>"log/`date +%Y-%m-%d_%H:%M:%S`-sql_check.log"
#mysqldump -h $DBHOST -u $USER --password=$PASS $DBNAME | gzip > "backup/`date +%Y-%m-%d_%H:%M:%S`-"$DBNAME"_gameserver.gz"
mv log/java0.log.0 "log/`date +%Y-%m-%d_%H-%M-%S`_java.log"
mv log/stdout.log "log/`date +%Y-%m-%d_%H-%M-%S`_stdout.log"
mv log/chat.log "log/`date +%Y-%m-%d_%H:%M:%S`-chat.log"
nice -n -2 java -Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m -cp lib/*: l2d.game.GameServer > log/stdout.log 2>&1
[ $? -ne 2 ] && break
sleep 10;
done


Ребят, если есть какие-либо мысли, как распределить память на эти процессы явы в этих 2 файлах или как-либо иначе, то помогите пожалуйста. Заранее благодарен.

0
Игорь
Игорь

Пользователь

Бывалый

Постов: 184

На форуме с: 19.09.2007

Репутация: +280

Рейтинг: 0

· 02.11.2009, 14:21

L2NextGen
http://www.l2nextgen.ru

0
Денис
Денис

Пользователь

Бывалый

Постов: 130

На форуме с: 26.11.2008

Репутация: +26

Рейтинг: 0

· 02.11.2009, 14:25

попробуй приоритет дать поменьше!
(диспечер задач,ищем задачу геодаты ставим приоритет среднее,ес стоит стандартно средний то ставь минимум!

0
CuJIbBEP2
CuJIbBEP2

Пользователь

Бывалый

Постов: 184

На форуме с: 03.02.2008

Репутация: +30

Рейтинг: 0

· 02.11.2009, 14:36

Хм...,а при каком онлайне?

0
Станислав
Станислав

Пользователь

Бывалый

Постов: 367

На форуме с: 30.03.2009

Репутация: +18

Рейтинг: 0

· 02.11.2009, 14:38

Produm: Хм...,а при каком онлайне?

тот же самий вопрос

0
П
Павел

Пользователь

Новичок

Постов: 12

На форуме с: 09.10.2008

Рейтинг: 0

· 02.11.2009, 17:12

Даже без онлайна. Вообще при онлайне в 4 человека. Стоит на FreeBSD.

0
iZen
iZen

Пользователь

Участник

Постов: 80

На форуме с: 23.01.2009

Репутация: +44

Рейтинг: 0

· 02.11.2009, 17:22

Ява под фряху уевая. Ставь или солярку или аикс или линуху.
Или попробуй вот это _www.freebsdfoundation.org/downloads/java.shtml

0
shOotzy
shOotzy

Пользователь

Бывалый

Постов: 208

На форуме с: 19.04.2008

Репутация: +132

Рейтинг: 0

· 02.11.2009, 17:22

Была такая хрень на Centos.

Удалил java openjdk , собрал из исходников sun java jdk и поставил.
После этого сервер жрал 1.7 гб с ГЕО-датой.

0
П
Павел

Пользователь

Новичок

Постов: 12

На форуме с: 09.10.2008

Рейтинг: 0

· 02.11.2009, 17:30

Так дело в том, что с явой вроде порядок. На других сборках нормально ресурсова кушало и все без проблем шло. Может действительно рапределение памяти на эти моды -xmn, -xms и -xmx поставить разумно? Если думаете, что это может помочь, то подскажите пожалуйста, как лучше.

0
Игорь
Игорь

Пользователь

Бывалый

Постов: 184

На форуме с: 19.09.2007

Репутация: +280

Рейтинг: 0

· 02.11.2009, 17:45

имхо именно эти параметры прироста в производительности не дадут, ими ты только можешь ограничить объём памяти потребляемый гео-сервером, сервером и тд.
Ты можешь сделать их меньше, гео-сервер будет есть меньше, но возможно в дальнейшем памяти не хватит со всеми вытекающими последствиями.

L2NextGen
http://www.l2nextgen.ru

0
CuJIbBEP2
CuJIbBEP2

Пользователь

Бывалый

Постов: 184

На форуме с: 03.02.2008

Репутация: +30

Рейтинг: 0

· 02.11.2009, 19:16

А сервак лагает?Где то с полгодика назад прочитал что это нормально,сколько отдал яве памяти столько она и заберёт.
Сам не проверял,надо будет посмотреть...,лучше обрати внимание на нагрузку проца.

0
П
Павел

Пользователь

Новичок

Постов: 12

На форуме с: 09.10.2008

Рейтинг: 0

· 02.11.2009, 20:08

Та проц ява-серваки почти не грузят. Эт ПТС порой до 90% загружали.

Ну а проблему, собственно, решил правильным выделением памяти под яву в скрипте запуска сервера. А именно,

Раскрывающийся текст
nice -n -2 java -Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m -cp lib/*: l2d.game.GameServer > log/stdout.log 2>&1
заменил на
Раскрывающийся текст
nice -n -2 java -Dfile.encoding=UTF-8 -Xms3g -Xmx4g -cp lib/*: l2d.game.GameServer > log/stdout.log 2>&1
. Теперь осталось решить проблему с тем, что за квесты на профы(марки) не дают адену..., но это уже другая тема :)

0
Игорь
Игорь

Пользователь

Бывалый

Постов: 184

На форуме с: 19.09.2007

Репутация: +280

Рейтинг: 0

· 02.11.2009, 21:03

xsauronx: Вопрос: Как можно оптимизировать затраты ОЗУ, чтобы сервер с геодатой так сильно не загружали комп.


В результате выделили вместе изначальных 1Gb, 4Gb.
Интересное решение поставленного вопроса)

L2NextGen
http://www.l2nextgen.ru

0
Войдите или зарегистрируйтесь чтобы ответить