Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat из Spring boot перестает отвечать / 25 сообщений из 174, страница 1 из 7
17.12.2020, 11:49
    #40028650
hck2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
хелп. есть 2 spring boot апликации, первая примитивно ловит рест вызовы, пишет факт вызова в базу и по рест дергает вторую аппликацию. вся логика по обработке вынесена во вторую апликацию. так вот, дня три назад, внезапно, обе апликации "подвисли" так, что томкат от спринг бута вроде коннекцию держит (telnet на порт томката коннектится), но ничего не отвечает. я рестартанул первую апликацию и констатировал что вторая тоже висит так же, хотя во второй апликации spring scheduller исправно запускал параллельные треды с задачами.
и так два раза. проверял вызовами из postman - срабатывает timeout вместо ожидаемого "Bad Request".
после этого проапгрейдил с java 14 до 15, spring boot c 2.2.1 до последнего 2.4.1. не помогло. в логе ничего интересного, в линуксовых тоже
в лог выводится INFO, наверно надо на что-то TRACE ставить. что еще можно посмотреть/сделать ? сейчас апикация стартует вот так


. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.1)

2020-12-17 11:34:47.011 INFO 29024 --- [ main] com.sample.bitrixgw.BitrixgwApplication : Starting BitrixgwApplication v0.1-SNAPSHOT using Java 15.0.1 on test02 with PID 29024 (/opt/webapi/bitrixgw-0.1-SNAPSHOT.jar started by root in /opt/webapi)
2020-12-17 11:34:47.015 INFO 29024 --- [ main] com.sample.bitrixgw.BitrixgwApplication : No active profile set, falling back to default profiles: default
2020-12-17 11:34:49.656 INFO 29024 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8081 (http)
2020-12-17 11:34:49.676 INFO 29024 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-12-17 11:34:49.676 INFO 29024 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.41]
2020-12-17 11:34:49.789 INFO 29024 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-12-17 11:34:49.789 INFO 29024 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2650 ms
2020-12-17 11:34:50.499 INFO 29024 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-12-17 11:34:50.776 WARN 29024 --- [ main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
2020-12-17 11:34:50.994 INFO 29024 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ''
2020-12-17 11:34:51.022 INFO 29024 --- [ main] com.sample.bitrixgw.BitrixgwApplication : Started BitrixgwApplication in 5.209 seconds (JVM running for 6.795)
2020-12-17 11:35:09.912 INFO 29024 --- [nio-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-12-17 11:35:09.913 INFO 29024 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-12-17 11:35:09.915 INFO 29024 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms
2020-12-17 11:35:09.959 WARN 29024 --- [nio-8081-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'event' is not present]
...
Рейтинг: 0 / 0
17.12.2020, 13:18
    #40028702
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
видимо тред-пул забился. В таких случаях нужно снимать thread dump через jstack
...
Рейтинг: 0 / 0
17.12.2020, 13:22
    #40028703
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2,

Сумбур какой то.
Ну подвески. Потом перегрузите. И опять повисла или что?
...
Рейтинг: 0 / 0
17.12.2020, 13:39
    #40028709
hck2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
pavel_nv
видимо тред-пул забился. В таких случаях нужно снимать thread dump через jstack

спасибо, почитаю. врядли тред-пул в обоих апликациях забился разом (плюс спринг шедуллер свои задачи запускал исправно), но наверно зацепки в дампе можно будет поискать.

PetroNotC Sharp
hck2,

Сумбур какой то.
Ну подвески. Потом перегрузите. И опять повисла или что?


да, рестартанул, через пол дня "зависло", проапгрейдил либы и жава, снова "зависло".
сейчас первая апликация с
logging.level.org.apache.tomcat=DEBUG
logging.level.org.apache.catalina=DEBUG

работает. жду затыка.
...
Рейтинг: 0 / 0
17.12.2020, 13:43
    #40028711
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2,
"жду"
Не жди. Изучай слово мониторинг и нагрузочное тестирование
...
Рейтинг: 0 / 0
17.12.2020, 14:53
    #40028733
hck2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
дождался, в логе
2020-12-17 14:36:58.233 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=503
2020-12-17 14:36:58.557 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=504
2020-12-17 14:36:58.912 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=505
2020-12-17 14:36:59.277 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=506
2020-12-17 14:36:59.637 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=507
2020-12-17 14:36:59.958 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=508
2020-12-17 14:37:00.295 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=509
2020-12-17 14:37:00.597 DEBUG 793 --- [o-8081-Acceptor] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-8081-Acceptor] latch=510

я верно понимаю что мне нужно тредов томкату увеличивать ?
server.tomcat.max-threads=1000 - должно помочь ?
...
Рейтинг: 0 / 0
17.12.2020, 14:56
    #40028740
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
нет, не верно. нужно разбираться почему у тебя медленно выполняются запросы, что аж 200 потоков не могут обработать все входящие запросы.
...
Рейтинг: 0 / 0
17.12.2020, 14:59
    #40028741
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2
pavel_nv
видимо тред-пул забился. В таких случаях нужно снимать thread dump через jstack

спасибо, почитаю. врядли тред-пул в обоих апликациях забился разом (плюс спринг шедуллер свои задачи запускал исправно), но наверно зацепки в дампе можно будет поискать.


судя по всему все 200 потоков на первом аппе ждут пока ему ответят из апп 2 (у тебя же в потоке запроса выполняется запрос ко второму аппе, судя по начальному описанию). Так что нужно изучать апп2
...
Рейтинг: 0 / 0
17.12.2020, 15:02
    #40028744
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
pavel_nv,
Есть мнение 350 макс поставь
...
Рейтинг: 0 / 0
17.12.2020, 15:05
    #40028748
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2,

Запрос в веб приложений выполняется за сотне доли сек?
Это не десктоп?
В десктоп хоть 8часов транзакцию держи.
...
Рейтинг: 0 / 0
17.12.2020, 15:07
    #40028750
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
Нужна диагностика уровня Томката. Посмотри сколько исполняется запросов в данный момент. И с какого IP
адреса они идут.
...
Рейтинг: 0 / 0
17.12.2020, 15:11
    #40028754
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
PetroNotC Sharp
pavel_nv,
Есть мнение 350 макс поставь


Ставьте. а потом выяснится что у него размер пула БД 20, и 180 потоков просто ждут его освобождения что бы БД сходить. В общем без понимания природы приложения это как пальцем в небо.
...
Рейтинг: 0 / 0
17.12.2020, 15:13
    #40028757
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
pavel_nv,
это default
...
Рейтинг: 0 / 0
17.12.2020, 15:18
    #40028759
hck2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
pavel_nv
hck2
пропущено...

спасибо, почитаю. врядли тред-пул в обоих апликациях забился разом (плюс спринг шедуллер свои задачи запускал исправно), но наверно зацепки в дампе можно будет поискать.


судя по всему все 200 потоков на первом аппе ждут пока ему ответят из апп 2 (у тебя же в потоке запроса выполняется запрос ко второму аппе, судя по начальному описанию). Так что нужно изучать апп2


да, так и есть - апп1 ждет когда апп2 прожует запрос и помечает в базе все ли хорошо прошло.
ок, я понял. буду думать как их общение асинхронным делать.

в принципе я не ожидал, что там и 10 потоков одновременно окажутся занятыми, но битрикс24 умеет удивлять. на одно изменение в сделке прилетает много десятков вызовов. в результате апп1 еще и ddos экраном выступает и 10 секунд ждет, что бы не забить апп2 дублирующими вызовами.
ок, буду думать.
...
Рейтинг: 0 / 0
17.12.2020, 15:22
    #40028765
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2,
необязательно все что в жизни тормозит пускать асинхронно.
...
Рейтинг: 0 / 0
17.12.2020, 15:25
    #40028768
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
>ловит рест вызовы, пишет факт вызова в базу
логгер всех http вызовов писать в бд это убийственно
...
Рейтинг: 0 / 0
17.12.2020, 15:31
    #40028774
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2
pavel_nv
пропущено...


судя по всему все 200 потоков на первом аппе ждут пока ему ответят из апп 2 (у тебя же в потоке запроса выполняется запрос ко второму аппе, судя по начальному описанию). Так что нужно изучать апп2


да, так и есть - апп1 ждет когда апп2 прожует запрос и помечает в базе все ли хорошо прошло.
ок, я понял. буду думать как их общение асинхронным делать.

в принципе я не ожидал, что там и 10 потоков одновременно окажутся занятыми, но битрикс24 умеет удивлять. на одно изменение в сделке прилетает много десятков вызовов. в результате апп1 еще и ddos экраном выступает и 10 секунд ждет, что бы не забить апп2 дублирующими вызовами.
ок, буду думать.

Подожди. На 1 изменение в сделке прилетает много десятков вызовов?
А в каком порядке они прилетают? В каком порядке система успеет их обработать?
Система идемпотентна?
...
Рейтинг: 0 / 0
17.12.2020, 15:32
    #40028777
hck2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
PetroNotC Sharp
>ловит рест вызовы, пишет факт вызова в базу
логгер всех http вызовов писать в бд это убийственно

нет, в базу записываю только те реквесты, что прислали верный application_token
...
Рейтинг: 0 / 0
17.12.2020, 15:39
    #40028786
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2
PetroNotC Sharp
>ловит рест вызовы, пишет факт вызова в базу
логгер всех http вызовов писать в бд это убийственно

нет, в базу записываю только те реквесты, что прислали верный application_token
ну дак это фильтр и писать в базу НЕ НАДО. ЭТО ТОРМОЗ!
...
Рейтинг: 0 / 0
17.12.2020, 15:40
    #40028787
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
hck2,

а фильтр это не приложение application
...
Рейтинг: 0 / 0
17.12.2020, 15:41
    #40028788
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
очередная жертва микросервисов что ли....
...
Рейтинг: 0 / 0
17.12.2020, 15:44
    #40028791
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
Да неизвестно что там за база. В последнее время этот термин стал ... слишком расплывчатым.

EventStore - база? ХЗ. Как по мне - просто свалка событий. Или InfluxDb - база?
Хз. Как по мне просто лог измерений.
...
Рейтинг: 0 / 0
17.12.2020, 16:03
    #40028799
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
mayton,
таких бд тут и нету😎
...
Рейтинг: 0 / 0
17.12.2020, 18:15
    #40028878
hck2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
mayton

Подожди. На 1 изменение в сделке прилетает много десятков вызовов?
А в каком порядке они прилетают? В каком порядке система успеет их обработать?
Система идемпотентна?

системе пришлось стать идемпотентной. битрикс24 все, что может - сообщить что есть изменение в сделке/товаре/задаче
как я понимаю одно изменение в сделке запросто запускает некие бизнес процессы, которые считают скидку и еще что-то и каждый шаг в процессе видимо генерирует свой рест вызов.
и то что я пытаюсь однотипные запросы пропускать уже мало спасает, я и с 1000 threads похоже зависну

2020-12-17 17:53:07.752 DEBUG 9390 --- [-8081-exec-1030] o.apache.tomcat.util.threads.LimitLatch : Counting down[http-nio-8081-exec-1030] latch=911
2020-12-17 17:53:48.814 DEBUG 9390 --- [-8081-exec-1031] o.apache.tomcat.util.threads.LimitLatch : Counting down[http-nio-8081-exec-1031] latch=910
2020-12-17 17:53:49.815 DEBUG 9390 --- [-8081-exec-1032] o.apache.tomcat.util.threads.LimitLatch : Counting down[http-nio-8081-exec-1032] latch=909

а можно как-то понять ли среди этих 909 threads зависших из-за б24 ? вероятно апп2 коннектится к б24, пытаясь выяснить что же в сделке изменилось и висит (таймаут я помню выкручивал). при этом висит и апп1 ожидая ответа.

mayton
Да неизвестно что там за база. В последнее время этот термин стал ... слишком расплывчатым.

EventStore - база? ХЗ. Как по мне - просто свалка событий. Или InfluxDb - база?
Хз. Как по мне просто лог измерений.


обычная mariadb. в ней я и записываю реквесты от б24. я посмотрел, все таки это апп2 по этой бд вычисляет, что уже есть более свежие и однотипные запросы и можно ревест не выполнять.

PetroNotC Sharp
очередная жертва микросервисов что ли....

нет, идея иметь самое примитивное приложение на переднем крае, в котором нечему ломатся и которое не пропустит вызовы от б24. а вот апп2 тяжелое и может себе позволить не успеать или вовсе упасть. когда поднимется, разгрести очередь из mariadb.
...
Рейтинг: 0 / 0
17.12.2020, 18:33
    #40028882
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Tomcat из Spring boot перестает отвечать
Я понятия не имею что такое битрикс. Но если у тебя количество threads такое большое - то я-бы проанализировал
1) зачем они нужны?
2) что они делают в данный момент. Сделай в JVisualVM dump stacktrace. Если они 99% висят на ожидании третьих сервисов - то
просто количественное их увеличение ничего не даст. Ботлнек не в твоей системе а в другой.
3) обсуди укрупнение threads. Пускай 1 thead делает пакетные действия за 1 roundtrip в сеть.

Для любой нормальной системы просто количество theads за 1000 штук уже вызывает подозрения.
Кроме того у каждого thread есть минимальный footprint по памяти порядка 10M. При таком подходе
пустые ничего не делающие потоки сожрут 10 гигабайт безо всякой пользы.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat из Spring boot перестает отвечать / 25 сообщений из 174, страница 1 из 7
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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