Проблема с выделением памяти под Java VM

Теги:, Java
 

Dreyk

новичок
Доброго времени суток!

У меня стоит сервер на Linux'е с пиковым онлайном 130+
Проблема в том, что на осадах и масс ПвП страшные лаги (включена геодата).

На компе стоит 4 гига оперативы, проц тянет. Стоит Java версии 1.6... Проблема в том, что не удаётся выделить на яву достаточно памяти.
В GameServer_loop.sh стоит:
... -Xmx1152m net.sf.l2j.gameserver.GameServer ...

При попытке выделить больше памяти при загрузке сервера лезут ошибки, типа:
code text
  1. Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
  2. ...
  3. Java HotSpot(TM) Client VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGTERM to handler- the VM may need to be forcibly terminated
  4. ...
  5. WARNING Failed to Load GeoFile at block: 0


Большая просьба к знающим людям - поделитесь, как можно решить проблему с выделением памяти под VM?
Возможно, кто-то сталкивался с подобной траблой, знает, как можно её решить.

Буду очень признателен за любую полезную информацию по данному вопросу.
+
-
edit
 

Balancer

администратор
★★★★★
>java.lang.OutOfMemoryError: unable to create new native thread

ИМХО, тут речь не об исчерпании обычного пула памяти. То ли операционка не поддерживает больше нитей (что за OS, кстати? м.б. попробовать сменить?), то ли памяти под стеки, то ли под системный пул (склероз, забыл, как он зовётся).

...

А так - странно, конечно. На L2F онлайн и за 300 бывал у некоторых. А у меня 139 было как-то без заметного отбирания памяти (на сервер в то время выделялось 512Мб).
+
-
edit
 

Dreyk

новичок
>>java.lang.OutOfMemoryError: unable to create new native thread
Balancer> ИМХО, тут речь не об исчерпании обычного пула памяти. То ли операционка не поддерживает больше нитей (что за OS, кстати? м.б. попробовать сменить?), то ли памяти под стеки, то ли под системный пул

2,6 Ghz Intel Pentium 4
4 GB DDR 3200
Linux Slackware 10.1

Машина слабовата, но для сервера её должно хватать - проц грузится не больше, чем на 30%, памяти доступно больше половины...

Что странно, на С5 проблем не было, но с переходом на IL осады стали просто нереальными из-за лагов, а BD танцами и оверы своими массовыми алли бафами способны превратить масс ПвП в слайд=шоу %(

Balancer> А так - странно, конечно. На L2F онлайн и за 300 бывал у некоторых. А у меня 139 было как-то без заметного отбирания памяти (на сервер в то время выделялось 512Мб).
На С5 онлайн был 160, при осаде Адена под 130. При большом скоплении народа лагало, но было терпимо, а сейчас... :(
Без геодаты, имхо, проблем не было бы, но беда в том, что тогда осады становятся не управляемыми, да и вообще раздолье для любителей халявного доступа в ктк, к эпик-боссам и т.п.
 
+
-
edit
 

Balancer

администратор
★★★★★
За геодату постараюсь взяться в конце августа. Т.е. к началу сентября будет отлажено. А там, глядишь, и по оптимизации что-нибудь придумаем ещё :)
 
UA MorbidAngel #03.08.2007 14:03  @Dreyk#03.08.2007 09:57
+
-
edit
 

MorbidAngel

разработчик L2J Fortress
★★★
... -Xmx1152m net.sf.l2j.gameserver.GameServer ...

А сборка то не Fortress.
Стоит задать этот вопрос непосредственно разработчикам, им лучше знать что они наворотили.
RU Diаmond #04.08.2007 21:53  @MorbidAngel#03.08.2007 14:03
+
-
edit
 

Diаmond

втянувшийся
☆★★
MorbidAngel> А сборка то не Fortress.
MorbidAngel> Стоит задать этот вопрос непосредственно разработчикам, им лучше знать что они наворотили.
В сф геодата подгружается постепенно, в зависимости от распределения игроков по местности. Но они не подумали, что подобные оптимизации нужны только на онлайне < 100. А цена - снижение производительности в десятки тысяч раз. К тому же, из за корявой реализации, при достаточно большом онлайне, расход памяти может превысить и полтора гига... В нашей сборке расход постоянный - 800мб, и испольуется прямая адресация, что дает максимально возможную скорость :)

Вот кстати, недавно засекал:

Онлайн 50-100, аптайм 23 часа, расход памяти 900мб (колеблется от 850 до 950), средняя загрузка процессора 2.5%, иногда скачки до 10%. Включена геодата и поиск пути.
 
Это сообщение редактировалось 04.08.2007 в 21:59
+
-
edit
 

phoptik

разработчик L2J Fortress
★★★
Diamond,
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2522 - 14 -2 2195m 1.6g 3848 S 24 82.4 39:38.09 java

Ну как сказать.... онлайн ~90 аптайм 5 часов. :)
+
-
edit
 

Diаmond

втянувшийся
☆★★
phoptik> Diamond,
phoptik> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
phoptik> 2522 - 14 -2 2195m 1.6g 3848 S 24 82.4 39:38.09 java
phoptik> Ну как сказать.... онлайн ~90 аптайм 5 часов. :)
Ты по телнету смотри, ява выделяет всю память, что ей дашь, но использует только часть.
А процессор у тебя что-то многовато жрется... хотя, у тебя и онлайн побольше, и машина наверное слабже :)

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10654 diamond 16 0 1276m 1.0g 42m S 8 69.6 54:19.81 java

Но это для двух ядер, а суммарная нагрузка 4%


Server Status:
+....... Player Count: 53/300
+........... GM Count: 0
+....... Object Count: 47989
+........... AI Count: 4101
+........ L2MonsterAI: 3960
+......... L2SummonAI: 0
+.L2Item(Void)/L2item: 6798/2243
+.L2Monster / Minions: 36074/2813
+..... Minions Groups: 1688
+........L2NpcInstance / L2Pc: 38317 / 53
+........... L2Summon: 0
+...... L2CastleGuard: 0
+............. L2Door: 549
+............. L2Char: 38919
*InGame Time / Uptime: 11:50 / 12hrs 57mins 15secs
*Shutdown_sec / mode : 39950 / 2
*Log_chat / log_tell : 0 / 0
+............ Threads: 53
+........... RAM Used: 860
 
Это сообщение редактировалось 05.08.2007 в 02:42
+
-
edit
 

phoptik

разработчик L2J Fortress
★★★
Машина АМД 4200+ Dual Core 64bit, 2 Gb DDR2, если это слабая то я не знаю...

Думаеш телнет вернее top напишет ? Всю память никто не выжырает, по мере загрузки java процесс "растет" до 1.3, в процессе работы накидывается еще до 1.6, предел 1.8 в скрипте стоит. Если бы он сразу всё занимал как ты пишешь, то он при запуске бы взял все 1.8.

p.s Онлайн у меня примерно как твой.
+
-
edit
 

Diаmond

втянувшийся
☆★★
Покажи что телнет пишет. А насчет нагрузки - нужно что-то более точное, чтобы сравнивать, чем значение в top на момент времени.
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru