Size: a a a

2020 March 19

AO

Alexey Otts in pro.jvm
Ну и с точки зрения openapi это тоже полная дичь
источник
2020 March 20

C

Combot in pro.jvm
R B has been banned! Reason: CAS ban.
источник

А

Артём Курилко in pro.jvm
Кто то знает готовые движки на джава для создания онлайн чата(только для пользователей)?
источник

C

Constantine in pro.jvm
Артём Курилко
Кто то знает готовые движки на джава для создания онлайн чата(только для пользователей)?
есть видеочат 🤔
источник

K

Konstantin 🇷🇺 in pro.jvm
Всем привет. В приложении oom, притом всю память съедает ThreadPoolExecutor. Само приложение получает данные из раббит и пересылает их по вебсокет(spring 5). Как можно определить кто виновник?) ссылка на скрин - https://ibb.co/S7fpPDt
источник

VI

Valeriy 🐻 Ivannikov in pro.jvm
Konstantin 🇷🇺
Всем привет. В приложении oom, притом всю память съедает ThreadPoolExecutor. Само приложение получает данные из раббит и пересылает их по вебсокет(spring 5). Как можно определить кто виновник?) ссылка на скрин - https://ibb.co/S7fpPDt
а ThreadPoolExecutor ограничен количеством?
источник

VI

Valeriy 🐻 Ivannikov in pro.jvm
но по скрину выглядит, как будто вы забиваете массив до отказа, просто пихая в него без остановки
источник

VI

Valeriy 🐻 Ivannikov in pro.jvm
тут что угодно по памяти упадет
источник

K

Konstantin 🇷🇺 in pro.jvm
Valeriy 🐻 Ivannikov
а ThreadPoolExecutor ограничен количеством?
я его явно нигде не использую, только в качестве настройки по пингу вебсокета :
@Override
   public void configureMessageBroker(MessageBrokerRegistry config) {
       ThreadPoolTaskScheduler pingScheduler = new ThreadPoolTaskScheduler();
       pingScheduler.initialize();
       config.enableSimpleBroker(SOCKET_BROKER).setHeartbeatValue(new long[]{1000, 0}).setTaskScheduler(pingScheduler);
       config.setApplicationDestinationPrefixes(SOCKET_APPLICATION_DESTINATION);
   }
источник

AO

Alexey Otts in pro.jvm
У вас просто тредпул видимо не успевает разгребать таски
источник

VI

Valeriy 🐻 Ivannikov in pro.jvm
Konstantin 🇷🇺
я его явно нигде не использую, только в качестве настройки по пингу вебсокета :
@Override
   public void configureMessageBroker(MessageBrokerRegistry config) {
       ThreadPoolTaskScheduler pingScheduler = new ThreadPoolTaskScheduler();
       pingScheduler.initialize();
       config.enableSimpleBroker(SOCKET_BROKER).setHeartbeatValue(new long[]{1000, 0}).setTaskScheduler(pingScheduler);
       config.setApplicationDestinationPrefixes(SOCKET_APPLICATION_DESTINATION);
   }
т.е. новый тредпул на каждый пинг?
просто кусок кода ни о чем, кроме этого, ни сказал
источник

K

Konstantin 🇷🇺 in pro.jvm
это я с теста скинул, так там 50 сек стоит
источник

VI

Valeriy 🐻 Ivannikov in pro.jvm
ну "пул" как бы намекает, что надо не стартовать новый, а использовать из пула уже созданные
а тут чет как-то не оч
источник

K

Konstantin 🇷🇺 in pro.jvm
я как то не очень понимаю как точно тут определить кто генерит эти пулы. Этот setHeartbeatValue или может SimpMessagingTemplate когда сообщения шлет юзеру
источник

DS

D & S in pro.jvm
Konstantin 🇷🇺
Всем привет. В приложении oom, притом всю память съедает ThreadPoolExecutor. Само приложение получает данные из раббит и пересылает их по вебсокет(spring 5). Как можно определить кто виновник?) ссылка на скрин - https://ibb.co/S7fpPDt
Добавь флаги при запуске  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<file-or-dir-path>
А когда упадет идешь смотреть, что же там такое большое
источник

NS

Name Schiefer in pro.jvm
D & S
Добавь флаги при запуске  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<file-or-dir-path>
А когда упадет идешь смотреть, что же там такое большое
screenshot smotri
источник

VS

Vladimir Sitnikov in pro.jvm
Konstantin 🇷🇺
Всем привет. В приложении oom, притом всю память съедает ThreadPoolExecutor. Само приложение получает данные из раббит и пересылает их по вебсокет(spring 5). Как можно определить кто виновник?) ссылка на скрин - https://ibb.co/S7fpPDt
Нужно на этом LinkedBlockingQueue нажать правой кнопкой, и потом retained set
источник

VS

Vladimir Sitnikov in pro.jvm
А по-хорошему, нужно бы очередь заменить на очередь ограниченного размера. Тогда при превышении его будут лететь иксепшны «занято, приходите позже»
источник

K

Konstantin 🇷🇺 in pro.jvm
Vladimir Sitnikov
А по-хорошему, нужно бы очередь заменить на очередь ограниченного размера. Тогда при превышении его будут лететь иксепшны «занято, приходите позже»
я пришел к выводу, что у меня на каждый входящий message в вебсокет, создается org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask судя по дампу. и они остаются висеть
источник

VI

Valeriy 🐻 Ivannikov in pro.jvm
Konstantin 🇷🇺
я пришел к выводу, что у меня на каждый входящий message в вебсокет, создается org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask судя по дампу. и они остаются висеть
Я про это выше говорил
источник