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

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

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

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

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

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

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

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


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

НА линуксе таких проблем не было.
- проблема в реализации многопоточности, в коде должны быть конструкции типа Thread.yield()
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37787124
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Тормоза Java на Windows.
    #37787137
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, проблема в политике обработки приоритетов потоков, которая изменилась при портировании с Linux JVM на Windows JVM.
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37787247
rfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot 123321
1) Ява нагружает как я заметил сильно только один процессор ,можно ли что-то в батнике прописать ,что бы кушала все ядра ?[/quot]
Это каким же способом вы это заметили? Через стандартную программку "монитор процессов"? Так она показывает 100% когда загружены все ядра, в этой ситуации линуксовский top показал бы 100% * (количество ядер).
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37787369
123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-XX:ThreadPriorityPolicy=1 нет такой параметр вовсе не задан , если его задавать то с каким числом? и по поводу приоритетов , то батник ведь не поймет /Max и тд. ?
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37787741
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я бы посмотрел на GC, если тормоза в нем - попробовал бы поменять и\или потюнить
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37787767
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никА я бы посмотрел на GC, если тормоза в нем - попробовал бы поменять и\или потюнить
Да, куча проблемных место помимо "приоритетов" и гипотетических распределений потоков. GC, конечно, всегда стоит логировать и смотреть в него. Но вряд ли его логика поменялась с переездом на винду.

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

Какие потребления памяти? Заполненость кучи?
Фризы надо смотреть профилировать и смотреть, на IO они, или на GC. Или просто процессоры чем-то заняты.
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37788026
123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
память очень странно кушается , например минимум =максимум и равно 8гб , при запуске память ходит кругами ,как будто уходит в виртуальную (свап отключен ) ,после чего где-то через минут 30 стабилизируется . Можно подробней про GC ? У меня не Ла2 сервер. Запускал YOURkiT ничего подозрительного ,что вызывает такие жуткие фризы не нашел.
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37788043
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Тормоза Java на Windows.
    #37788107
123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz есть скайп ,icq .Хотел бы с вами связаться ,помощь оплачиваемая .
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37788110
123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при запуске память ходит кругами:

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

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
Тормоза Java на Windows.
    #37789504
123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть предложения,что подредактировать ,добавить ,убрать?
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37789510
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123321Есть предложения,что подредактировать ,добавить ,убрать?
Оптимальные настройки выявляются тестированием и анализом GC лога и гистограмм.
Сказать однозначно что для конфигурации столько-то Гб, столько-то ядер существует одна оптимальная конфигурация - нельзя.
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37789766
123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну хотя бы взглянув на теперешние параметры и на параметры ОЗУ ,можно ведь на глаз сказать ,что можно попробовать дописать ,увеличить ,убрать и тд
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37789768
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123321ну хотя бы взглянув на теперешние параметры и на параметры ОЗУ ,можно ведь на глаз сказать ,что можно попробовать дописать ,увеличить ,убрать и тд
Нет, нельзя. Настройки меняются в зависимости от нужд приложения и его поведения. Остальное второстепенно.
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37789967
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=?

Гугл знаю ,читал ,но хотелось бы от вас услышать.
...
Рейтинг: 0 / 0
Тормоза Java на Windows.
    #37790030
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Тормоза Java на Windows.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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