Оптимизация потребления ОЗУ сервером
Сборка: 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
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 файлах или как-либо иначе, то помогите пожалуйста. Заранее благодарен.
попробуй приоритет дать поменьше!
(диспечер задач,ищем задачу геодаты ставим приоритет среднее,ес стоит стандартно средний то ставь минимум!
Ява под фряху уевая. Ставь или солярку или аикс или линуху.
Или попробуй вот это _www.freebsdfoundation.org/downloads/java.shtml
Была такая хрень на Centos.
Удалил java openjdk , собрал из исходников sun java jdk и поставил.
После этого сервер жрал 1.7 гб с ГЕО-датой.
Так дело в том, что с явой вроде порядок. На других сборках нормально ресурсова кушало и все без проблем шло. Может действительно рапределение памяти на эти моды -xmn, -xms и -xmx поставить разумно? Если думаете, что это может помочь, то подскажите пожалуйста, как лучше.
имхо именно эти параметры прироста в производительности не дадут, ими ты только можешь ограничить объём памяти потребляемый гео-сервером, сервером и тд.
Ты можешь сделать их меньше, гео-сервер будет есть меньше, но возможно в дальнейшем памяти не хватит со всеми вытекающими последствиями.
L2NextGen
http://www.l2nextgen.ru
А сервак лагает?Где то с полгодика назад прочитал что это нормально,сколько отдал яве памяти столько она и заберёт.
Сам не проверял,надо будет посмотреть...,лучше обрати внимание на нагрузку проца.
Та проц ява-серваки почти не грузят. Эт ПТС порой до 90% загружали.
Ну а проблему, собственно, решил правильным выделением памяти под яву в скрипте запуска сервера. А именно,






