Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

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

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

13 replies406 viewsCurrently viewing: 1
П
Павел

User

Новичок

Posts: 12

На форуме с: 10/09/2008

Рейтинг: 0

· 11/02/2009, 11:56 AM

Сборка: 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
Игорь
Игорь

User

Бывалый

Posts: 184

На форуме с: 09/19/2007

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

Рейтинг: 0

· 11/02/2009, 02:21 PM

L2NextGen
http://www.l2nextgen.ru

0
Денис
Денис

User

Бывалый

Posts: 130

На форуме с: 11/26/2008

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

Рейтинг: 0

· 11/02/2009, 02:25 PM

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

0
CuJIbBEP2
CuJIbBEP2

User

Бывалый

Posts: 184

На форуме с: 02/03/2008

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

Рейтинг: 0

· 11/02/2009, 02:36 PM

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

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

User

Бывалый

Posts: 367

На форуме с: 03/30/2009

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

Рейтинг: 0

· 11/02/2009, 02:38 PM

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

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

0
П
Павел

User

Новичок

Posts: 12

На форуме с: 10/09/2008

Рейтинг: 0

· 11/02/2009, 05:12 PM

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

0
iZen
iZen

User

Участник

Posts: 80

На форуме с: 01/23/2009

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

Рейтинг: 0

· 11/02/2009, 05:22 PM

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

0
shOotzy
shOotzy

User

Бывалый

Posts: 208

На форуме с: 04/19/2008

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

Рейтинг: 0

· 11/02/2009, 05:22 PM

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

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

0
П
Павел

User

Новичок

Posts: 12

На форуме с: 10/09/2008

Рейтинг: 0

· 11/02/2009, 05:30 PM

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

0
Игорь
Игорь

User

Бывалый

Posts: 184

На форуме с: 09/19/2007

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

Рейтинг: 0

· 11/02/2009, 05:45 PM

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

L2NextGen
http://www.l2nextgen.ru

0
CuJIbBEP2
CuJIbBEP2

User

Бывалый

Posts: 184

На форуме с: 02/03/2008

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

Рейтинг: 0

· 11/02/2009, 07:16 PM

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

0
П
Павел

User

Новичок

Posts: 12

На форуме с: 10/09/2008

Рейтинг: 0

· 11/02/2009, 08:08 PM

Та проц ява-серваки почти не грузят. Эт ПТС порой до 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
Игорь
Игорь

User

Бывалый

Posts: 184

На форуме с: 09/19/2007

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

Рейтинг: 0

· 11/02/2009, 09:03 PM

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


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

L2NextGen
http://www.l2nextgen.ru

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