Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Тормоза Java на Windows. / 22 сообщений из 22, страница 1 из 1
09.05.2012, 23:15:33
    #37787099
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
Здравствуйте. Очень надеюсь на вашу помощь ,собственно имею игровой сервер ,пришлось перейти с линукса на windows server 2008 (крайняя необходимость ).
Какие появились проблемы:

1) У всех вырос пинг и главное появились сильные фризы при скопления народа .
Самое интересное ,что тормоза заметны просто когда открываешь консоль ЯВЫ и видно как записи идут рывками (зависают ) .Такое ощущения ,что процессор нагружен на 100%.

Теперь вопросы:
1) Ява нагружает как я заметил сильно только один процессор ,можно ли что-то в батнике прописать ,что бы кушала все ядра ?
2) Как прописать в батнике ,что бы при старте ЯВЕ автоматически присваивался "высокий приоритет"
3) Что вообще посоветуете сделать с виндой (Явой) ,что бы не было этих фризов?
На линукс возможности вернутся нет.

Что сейчас прописано в батнике:

XMS = XMX (пробовал менять минимальное значения результата не дало)
и
-server
-ea
-xdebug

В самом игровом сервере есть некоторые параметры:
basepollsize и threadpercore .

Еще раз минимальный пинг не изменился проблема только в том ,что появились прыжки пинга(фризы) с 60 может до 2000 прыгнуть и в этот момент визуально видно как консоль явы так же идет с задержками...

НА линуксе таких проблем не было.


Очень надеюсь на вашу помощь ,заранее благодарен !
...
Рейтинг: 0 / 0
09.05.2012, 23:34:19
    #37787111
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
123321Еще раз минимальный пинг не изменился проблема только в том ,что появились прыжки пинга(фризы) с 60 может до 2000 прыгнуть и в этот момент визуально видно как консоль явы так же идет с задержками...

НА линуксе таких проблем не было.
- проблема в реализации многопоточности, в коде должны быть конструкции типа Thread.yield()
...
Рейтинг: 0 / 0
10.05.2012, 00:07:37
    #37787124
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
123321,

1) -XX:ParallelGCThreads= Число ядер ;
2) Для Windows Server 2008 доступны приоритеты -

/MIN
/MAX
/SEPARATE
/SHARED
/LOW
/BELOWNORMAL
/NORMAL
/ABOVENORMAL
/HIGH
/REALTIME
/WAIT


3) Проверьте, не выставлен- ли -XX:ThreadPriorityPolicy=1 .
...
Рейтинг: 0 / 0
10.05.2012, 00:54:49
    #37787137
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
Возможно, проблема в политике обработки приоритетов потоков, которая изменилась при портировании с Linux JVM на Windows JVM.
...
Рейтинг: 0 / 0
10.05.2012, 08:50:38
    #37787247
rfq
rfq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
[quot 123321
1) Ява нагружает как я заметил сильно только один процессор ,можно ли что-то в батнике прописать ,что бы кушала все ядра ?[/quot]
Это каким же способом вы это заметили? Через стандартную программку "монитор процессов"? Так она показывает 100% когда загружены все ядра, в этой ситуации линуксовский top показал бы 100% * (количество ядер).
...
Рейтинг: 0 / 0
10.05.2012, 10:45:20
    #37787369
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
-XX:ThreadPriorityPolicy=1 нет такой параметр вовсе не задан , если его задавать то с каким числом? и по поводу приоритетов , то батник ведь не поймет /Max и тд. ?
...
Рейтинг: 0 / 0
10.05.2012, 13:25:25
    #37787741
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
А я бы посмотрел на GC, если тормоза в нем - попробовал бы поменять и\или потюнить
...
Рейтинг: 0 / 0
10.05.2012, 13:37:46
    #37787767
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
забыл никА я бы посмотрел на GC, если тормоза в нем - попробовал бы поменять и\или потюнить
Да, куча проблемных место помимо "приоритетов" и гипотетических распределений потоков. GC, конечно, всегда стоит логировать и смотреть в него. Но вряд ли его логика поменялась с переездом на винду.

123321,
Сколько вообще потоков? Если у вас тысячи активных параллельных запросов без особого пулинга и NIO, то, вроде, на винде с этим хуже.

Какие потребления памяти? Заполненость кучи?
Фризы надо смотреть профилировать и смотреть, на IO они, или на GC. Или просто процессоры чем-то заняты.
...
Рейтинг: 0 / 0
10.05.2012, 15:40:05
    #37788026
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
память очень странно кушается , например минимум =максимум и равно 8гб , при запуске память ходит кругами ,как будто уходит в виртуальную (свап отключен ) ,после чего где-то через минут 30 стабилизируется . Можно подробней про GC ? У меня не Ла2 сервер. Запускал YOURkiT ничего подозрительного ,что вызывает такие жуткие фризы не нашел.
...
Рейтинг: 0 / 0
10.05.2012, 15:47:00
    #37788043
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
123321например минимум =максимум и равно 8гб
Для сервера это нормально. Какой смысл делать меньшую кучу на старте. Это только в клиентской JVM логично. Та стартует быстрее.

123321при запуске память ходит кругами
Это какой-то новый технический термин? Что-то я с ним не знаком. Можно доступным языком охарактеризовать хождение кругами?
Наполняется до отказа, потом GC всё очищает? И так в цикле?


123321 ,как будто уходит в виртуальную (свап отключен )
Чем это характеризуется? Как будто пишется на HDD?


123321 Можно подробней про GC ?
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
http://jaitechwriteups.blogspot.com/2006/08/how-to-enable-garbage-collection-gc.html

123321 У меня не Ла2 сервер.
Это важно.

123321Запускал YOURkiT ничего подозрительного ,что вызывает такие жуткие фризы не нашел.
Как выглядит активность потоков во время фризов?
Как выглядит наполнение кучи во время фризов?
...
Рейтинг: 0 / 0
10.05.2012, 16:19:12
    #37788107
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
Blazkowicz есть скайп ,icq .Хотел бы с вами связаться ,помощь оплачиваемая .
...
Рейтинг: 0 / 0
10.05.2012, 16:21:29
    #37788110
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
при запуске память ходит кругами:

Начинает использовать около 80% выделяемой ей памяти ,после чего резко понижается до 10-20% , то есть из выделяемой (мин-мах ) 8 гб начинает потреблять 2-3ГБ.
...
Рейтинг: 0 / 0
10.05.2012, 16:59:03
    #37788191
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
Возможно стоит потюнить Eden и вообще увеличить область хранения young generation, надо смотреть что кушает столько памяти, вообще есть хорошая книжка Java Performance by Charlie Hunt - там целая глава по тюнингу GC
...
Рейтинг: 0 / 0
10.05.2012, 17:03:04
    #37788200
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
еще можно посмотреть на SurviveRatio, возможно оно слишком маленькое... короче много косяков может быть. Начать вам надо с того чтобы запустить приложение с включенным логом GC, потом можете выложить сюда, и смотреть куда именно уходит память, и срабатывает GC толко на минорные сборки или общие тоже, возможно у вас какая то невообразимая мапа, которая не влазит в young и сразу промоутается в old - и следовательно вместо быстрой минорной сборки получаем медленную полную. Так же надо попробовать свичнуть на parallel GC в общем это надо на месте смотреть
...
Рейтинг: 0 / 0
10.05.2012, 18:35:56
    #37788336
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
123321память очень странно кушается , например минимум =максимум и равно 8гб , при запуске память ходит кругами ,как будто уходит в виртуальную ( свап отключен )Выделено мною.
Включите и, мопвашуять, не трогайте, то чего не понимаете.
...
Рейтинг: 0 / 0
10.05.2012, 22:31:25
    #37788540
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
помогите подобрать оптимальные параметры. Погуглил почитал ,вот что в батник всунул:

REM Non Heap memory
set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize=256m
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=1024m

REM Set heap min/max to same size for consistent results
set JAVA_OPTS=%JAVA_OPTS% -Xms6096m
set JAVA_OPTS=%JAVA_OPTS% -Xmx10096m

REM Garbage collection/Performance Options
set JAVA_OPTS=%JAVA_OPTS% -Xnoclassgc
set JAVA_OPTS=%JAVA_OPTS% -XX:TargetSurvivorRatio=90
set JAVA_OPTS=%JAVA_OPTS% -XX:SurvivorRatio=16
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxTenuringThreshold=12
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseParNewGC
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseConcMarkSweepGC
set JAVA_OPTS=%JAVA_OPTS% -XX:+CMSIncrementalMode
set JAVA_OPTS=%JAVA_OPTS% -XX:+CMSIncrementalPacing
set JAVA_OPTS=%JAVA_OPTS% -XX:+CMSParallelRemarkEnabled
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseCompressedOops
set JAVA_OPTS=%JAVA_OPTS% -XX:UseSSE=3
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseFastAccessorMethods

REM Logging
REM set JAVA_OPTS=%JAVA_OPTS% -verbose:gc
REM set JAVA_OPTS=%JAVA_OPTS% -verbose:class
REM set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCTimeStamps
REM set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGC
REM set JAVA_OPTS=%JAVA_OPTS% -XX:+TraceClassUnloading
REM set JAVA_OPTS=%JAVA_OPTS% -Xloggc:gc.log




Подобрать под:
i-7 (sandybridge) 3400MHZ (8 потоков)
32GB RAM
ДВА GS .
...
Рейтинг: 0 / 0
11.05.2012, 14:51:11
    #37789504
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
Есть предложения,что подредактировать ,добавить ,убрать?
...
Рейтинг: 0 / 0
11.05.2012, 14:54:50
    #37789510
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
123321Есть предложения,что подредактировать ,добавить ,убрать?
Оптимальные настройки выявляются тестированием и анализом GC лога и гистограмм.
Сказать однозначно что для конфигурации столько-то Гб, столько-то ядер существует одна оптимальная конфигурация - нельзя.
...
Рейтинг: 0 / 0
11.05.2012, 16:53:42
    #37789766
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
ну хотя бы взглянув на теперешние параметры и на параметры ОЗУ ,можно ведь на глаз сказать ,что можно попробовать дописать ,увеличить ,убрать и тд
...
Рейтинг: 0 / 0
11.05.2012, 16:55:06
    #37789768
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
123321ну хотя бы взглянув на теперешние параметры и на параметры ОЗУ ,можно ведь на глаз сказать ,что можно попробовать дописать ,увеличить ,убрать и тд
Нет, нельзя. Настройки меняются в зависимости от нужд приложения и его поведения. Остальное второстепенно.
...
Рейтинг: 0 / 0
11.05.2012, 18:52:43
    #37789967
123321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
ну тогда можете мне подробней рассказать про параметры:
set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize= ?
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=?
set JAVA_OPTS=%JAVA_OPTS% -XX:TargetSurvivorRatio=?
set JAVA_OPTS=%JAVA_OPTS% -XX:SurvivorRatio=?
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxTenuringThreshold=?

Гугл знаю ,читал ,но хотелось бы от вас услышать.
...
Рейтинг: 0 / 0
11.05.2012, 19:39:42
    #37790030
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормоза Java на Windows.
123321ну тогда можете мне подробней рассказать про параметры:
set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize= ?
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=?
set JAVA_OPTS=%JAVA_OPTS% -XX:TargetSurvivorRatio=?
set JAVA_OPTS=%JAVA_OPTS% -XX:SurvivorRatio=?
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxTenuringThreshold=?

Гугл знаю ,читал ,но хотелось бы от вас услышать.

Еще раз вам повторю, тюнинг параметров стоит начинать только тогда, когда профилировщик показал что тормоза в GC, и когда вы выяснили в чем именно тормоза, единого волшебного рецепта нет, более того бездумное шпигование всякими хитрыми параметрами в большинстве случаев не то чтобы сведет все на нет - а только ухудшит положение.
Вот эти параметры -

REM set JAVA_OPTS=%JAVA_OPTS% -verbose:gc
REM set JAVA_OPTS=%JAVA_OPTS% -verbose:class
REM set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCTimeStamps
REM set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGC
REM set JAVA_OPTS=%JAVA_OPTS% -XX:+TraceClassUnloading
REM set JAVA_OPTS=%JAVA_OPTS% -Xloggc:gc.log

Вам помогут определить некоторые характеристики приложения, на основе анализа данных можно найти проблемное место, если сами пока не можете проанализировать, можете выложить лог GC сюда. После того как причина будет выявлена можно уже гадать и спараметрами
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Тормоза Java на Windows. / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]