Очень медленное создание потоков JVM (очень длинные паузы в java.lang.Thread.setPriority0 ()) - PullRequest
0 голосов
/ 27 сентября 2018

У нас проблема с производительностью JVM на одной из наших хост-машин.

Хост-машина состоит из 16 процессорных ядер, 16 ГБ ОЗУ, Windows Server 2012 - хост-ОС.JVM - 1,8 131, Xmx - 10 ГБ, но для нормальной работы достаточно 2-3 ГБ, а потребление редко увеличивается.Приложение использует все ядра, но загрузка процессора очень низкая - максимум 15%.Низкая активность GC.

То же приложение с той же конфигурацией, работающее на других хостах, не имеет проблем с производительностью и легко потребляет больше 2-3 ГБ ОЗУ и ЦП по мере необходимости.

Но на этом конкретномХост приложение перестало отвечать на запросы, когда начинается некоторая загрузка.У нас есть предопределенные размеры ядра для нескольких пулов потоков, и когда приложение начинает увеличивать эти пулы, создавая новые потоки, оно почти застревает.

Дампы потоков выглядят очень странно.Многие запущенные потоки с java.lang.Thread.setPriority0 () выполняются в течение длительного периода времени.

Как:

"Thread-14592" #676532 daemon prio=3 os_prio=0 tid=0x0000000026852000 nid=0x15a0 runnable [0x000000003737e000]    
   java.lang.Thread.State: RUNNABLE    
at java.lang.Thread.setPriority0(Native Method)    
at java.lang.Thread.setPriority(Unknown Source)    
at java.lang.Thread.init(Unknown Source)    
at java.lang.Thread.init(Unknown Source)    
at java.lang.Thread.<init>(Unknown Source)    
at java.util.concurrent.Executors$DefaultThreadFactory.newThread(Unknown Source)    
at com.util.NamedThreadFactory.newThread(NamedThreadFactory.java:38)
at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(Unknown Source)    
at java.util.concurrent.ThreadPoolExecutor.addWorker(Unknown Source)    
at java.util.concurrent.ThreadPoolExecutor.execute(Unknown Source)    
at java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
...

setPriority0() может работать в течение пары минуттак что производительность приложения на этом хосте ужасная.

Мы пытались установить -XX: -UseThreadPriorities, но с теми же результатами.

Может ли кто-нибудь дать нам подсказку, на что нам следует обратить внимание, чтобы найти причину описанного поведения?

1 Ответ

0 голосов
/ 04 октября 2018

Это действительно был антивирус.

Не знаю, какие именно его настройки, но когда антивирус был выключен, приложение возвращается в обычный поток fast'n'furious.

...