powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Блокировка потоков
25 сообщений из 114, страница 2 из 5
Блокировка потоков
    #40063388
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
asv79,
>который и есть многопоточный)
Я не ожидал что у тебя внутри метода нет подметодов каждый со своим временем.
)))))))

все там есть,петро не мешай плиз в этой теме - дай люди со знаниями накинут варинты проблемы.

Дак тебе выше чел сказал ЧТО НУЖНО ЗНАТЬ ТОЧНО СТРОКУ.))))))
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063389
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
авторпс.я б собственно тему не создавал ,но каждый прогон - это 4 часа - может тут кто мысль подкинет)
Стоит уменьшить кол-во выделяемой памяти JVM, тогда проблема скорей всего воспроизведется раньше. Еще как вариант - увеличить кол-во потоков, но это усложнить последующий анализ.

PS: Хм.. Я не всегда могу редактировать свои сообщения?
память тут к сожалению не причем-я тоже думал что мы упираемся в лимиты - накинул памяти и все равно состояние это возникает в одном и том же месте- я думаю это какие то проблемы с данными ,так как раньше все работало с такими же объемами и не было никаких проблем.
Тоесть если бы теория памяти была верна - мы бы при увеличении или уменьшении получали это состояние в разный момент времени- но оно всегда одно и тоже- точней не время а именно последние логи - обработка такого то элемента и привет подвисание
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063391
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС
Будет очень смешно если опять виновата бд гражданин джун.
А у вас мания преследования петро пошла).
Работай!
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063394
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Для поиска проблемы нужно всего две вещи:
1. Определить какие потоки грузят
2. И на какой строке

Я так понимаю что с 1ым проблем нет. Если есть, то в Линухе можно выводить потоки и насколько они загружают CPU с помощью top (в интернетах ищем по linux lightweight processes). Там же мы можем увидеть ID потока, который потом можно сопоставить с тем что выводит thread dump. Они правда выводят в разных системах исчисления, нужно будет пересчитать.

Ну и на какой строке можно легко определить все тем же thread dump'ом:
Код: powershell
1.
jcmd <PID> Thread.print



Ну а там уже по строке кода должно быть понятно. Если не понятно - нужно нам предоставить кусок кода который грузит. Может оказаться все тот же GC как уже предлагали выше, это будет свидетельствовать что создается слишком много объектов. Используется ли Hibernate для работы с БД и, если да, очищается ли его сессия?

Также обычно СУБД позволяют определить какие записи заблокированы, какие запросы счас выполняются и пр. Это тоже может натолкнуть на мысли.

В общем, @asv79, нужно чтоб ты хоть как-то начал диагностировать проблему. Пока звучит будто все телодвижения были нерешительны и наугад. Из вопроса даже не понятно - это java процесс вообще грузит CPU?

спасибо за развернутый овет- сейчас получу это состоние блокировки и сделаю все что вы выше описали
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063396
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из Монго в Постгрес, говоришь.

Вариант: в Постгрес в запрос передаются какие-то объекты, от которых плохеет постгресовому драйверу. Сталкивался с таким, когда из скриптов в Nashorn вызывал JdbcTemplate, и вместо джавских дат и чисел приходили nashorn-овые.

Кандидат на такой случай -- код вида statement.setObject(num, objFromMongo), когда типы bind-переменных определяются неявно.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063398
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
Из Монго в Постгрес, говоришь.

Вариант: в Постгрес в запрос передаются какие-то объекты, от которых плохеет постгресовому драйверу. Сталкивался с таким, когда из скриптов в Nashorn вызывал JdbcTemplate, и вместо джавских дат и чисел приходили nashorn-овые.

Кандидат на такой случай -- код вида statement.setObject(num, objFromMongo), когда типы bind-переменных определяются неявно.

объекты все одинаковые - тоесть если бы было не так оно бы не работало и раньше
но кому то плохееет явно - что метод не завершается ,а вот кому надо понять -так как в логах везде тишь да гладь да божья благодать
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063413
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79
пропущено...

все там есть,петро не мешай плиз в этой теме - дай люди со знаниями накинут варинты проблемы.

Дак тебе выше чел сказал ЧТО НУЖНО ЗНАТЬ ТОЧНО СТРОКУ.))))))

человек,а не ты- ты то сиди ровно и не мешай людям общаться
пс.давно пора администрации форума сделать функцию Unwanted чтобы петро забыл сюда дорогу)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063417
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
jcmd <PID> Thread.print


набрал топ - получил процесс который 900% занимает ЦПУ
команда выше не работает -
Код: java
1.
2.
3.
4.
5.
6.
Command 'jcmd' not found, but can be installed with:

sudo apt install openjdk-11-jdk-headless  # version 11.0.7+10-2ubuntu2~19.10, or
sudo apt install openjdk-8-jdk-headless   # version 8u252-b09-1~19.10
sudo apt install openjdk-13-jdk-headless  # version 13+33-1
sudo apt install openjdk-14-jdk-headless  # version 14~18-1


ни одна из этих команд не приводит к успеху
какой то конфликт с монго сервером судя по всему

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
~$ sudo apt install openjdk-8-jdk-headless
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 mongodb-org : Depends: mongodb-org-server but it is not going to be installed
               Depends: mongodb-org-mongos but it is not going to be installed
 mongodb-org-tools : Depends: mongodb-database-tools but it is not going to be installed
 openjdk-8-jdk-headless : Depends: openjdk-8-jre-headless (= 8u252-b09-1~19.10) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063421
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джаву откуда запускаешь? У нее в каталоге /bin этот jcmd должен быть.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063425
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
пропущено...

Дак тебе выше чел сказал ЧТО НУЖНО ЗНАТЬ ТОЧНО СТРОКУ.))))))

человек,а не ты- ты то сиди ровно и не мешай людям общаться
пс.давно пора администрации форума сделать функцию Unwanted чтобы петро забыл сюда дорогу)
а тут?
22298979
Долго врубался чтобы вычислить что бд виновата?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063449
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
Джаву откуда запускаешь? У нее в каталоге /bin этот jcmd должен быть.

я запускаю ctl сервис ,хз где там джава спряталась) но она точно есть ибо приложение работает
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063451
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79
пропущено...

человек,а не ты- ты то сиди ровно и не мешай людям общаться
пс.давно пора администрации форума сделать функцию Unwanted чтобы петро забыл сюда дорогу)
а тут?
22298979
Долго врубался чтобы вычислить что бд виновата?

бд тут не причем
900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %
так что иди спать конь педальная)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063459
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
пропущено...
а тут?
22298979
Долго врубался чтобы вычислить что бд виновата?

бд тут не причем
900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %
так что иди спать конь педальная)
это у тебя такая логика?
То есть, если бд начинает писать 1 запись в сек по разным причинам,
то у тебя потоки не будут тормозить что ли?
Они 1 процент ЦПУ займут?
Ну скажи хоть пару умных слов.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063467
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

не знаю как насчет jcmd
но на моем опыте обычно используется
jstack <PID> - снять тред-дамп
jmap <PID> - снять хип-дамп


Если таких команд нет, и, вдруг приложение крутится в докере - то какой образ используется?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063473
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мое имхо, что автору топика не следует пудрить мозги про дамп памяти, карту памяти, дамп кучи и т.д.
Это слишком круто для него.
Надо искать ошибку более простыми способами.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063476
автор900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %Ок, ну эт хорошо, значит локализовали что это хотя бы наше приложение. А дальше нужно искать уже точно строку кода, вполне возможно что там какой-то баг который в вечный цикл вводит приложение. Это очень быстро отыскивается с помощью thread dump'a. И этому нужно обязательно обучиться - снимать дампы это одно из первых и лучших средств траблшутинга. Поэтому лучше сразу потратить время и разобраться.
авторCommand 'jcmd' not found, but can be installed with:jcmd устанавливается вместе с JDK. Т.е. находится в JAVA_HOME/bin, ищи там. Однако в комплект JRE эта утилита не входит, поэтому если у тебя именно JRE - се ля ви. Нужно будет поставить JDK.
pavel_nvне знаю как насчет jcmd
но на моем опыте обычно используется
jstack <PID> - снять тред-дамп
jmap <PID> - снять хип-дампЭти тоже входят только в JDK, но на сегодняшний день jcmd их вытесняет. Она в себя включает эти две возможности, а также многие другие:
jcmd helpThe following commands are available:
Compiler.CodeHeap_Analytics
Compiler.codecache
Compiler.codelist
Compiler.directives_add
Compiler.directives_clear
Compiler.directives_print
Compiler.directives_remove
Compiler.perfmap
Compiler.queue
GC.class_histogram
GC.finalizer_info
GC.heap_dump
GC.heap_info
GC.run
GC.run_finalization
JFR.check
JFR.configure
JFR.dump
JFR.start
JFR.stop
JVMTI.agent_load
JVMTI.data_dump
ManagementAgent.start
ManagementAgent.start_local
ManagementAgent.status
ManagementAgent.stop
Thread.print
VM.class_hierarchy
VM.classloader_stats
VM.classloaders
VM.command_line
VM.dynlibs
VM.events
VM.flags
VM.info
VM.log
VM.metaspace
VM.native_memory
VM.print_touched_methods
VM.set_flag
VM.stringtable
VM.symboltable
VM.system_properties
VM.systemdictionary
VM.uptime
VM.version
help
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063478
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

я думаю тут коллегам больше интересно самим посмотреть тред-дамп топик стартера и пополнить свой багаж знаний (как делать не надо), чем решить конкретную проблему топик-стартера
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063486
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv,
Может быть ты и прав.
Только ТС обычно не делает то что его просят.
Поживем увидим.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063487
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
>Ок, ну эт хорошо, значит локализовали что это хотя бы наше приложение.
= не думаю что эти две цифры локализуют AppServer и исключают обе БД как проблемные.
Имхо
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063613
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Alexander A. Sak
Джаву откуда запускаешь? У нее в каталоге /bin этот jcmd должен быть.

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

Непонятно. Ты привел слово которое слишком .... слишком много раз гуглится и по нему нет
никакой конкретики.

Это оно?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
$ systemctl --help
systemctl [OPTIONS...] COMMAND ...

Query or send control commands to the system manager.

Unit Commands:
  list-units [PATTERN...]             List units currently in memory
  list-sockets [PATTERN...]           List socket units currently in memory,



Тыж понимаешь когда затаскиваешь в форум Java связи с какой-то специфичной технологии - то надо об
этом обязательно сказать.

Иначе - люди просто не знают о чем речь идет.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063618
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

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

Непонятно. Ты привел слово которое слишком .... слишком много раз гуглится и по нему нет
никакой конкретики.

Это оно?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
$ systemctl --help
systemctl [OPTIONS...] COMMAND ...

Query or send control commands to the system manager.

Unit Commands:
  list-units [PATTERN...]             List units currently in memory
  list-sockets [PATTERN...]           List socket units currently in memory,



Тыж понимаешь когда затаскиваешь в форум Java связи с какой-то специфичной технологии - то надо об
этом обязательно сказать.

Иначе - люди просто не знают о чем речь идет.

да это именно оно - приложение запускается sudo systemctl start app.service
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063621
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ну набери

Код: java
1.
systemctl status <yourapplication>



Там будут опции. Может command-line. Вот у меня например memcached показывает.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$ systemctl status memcached
&#9679; memcached.service - memcached daemon
     Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-04-18 19:08:34 EEST; 1h 31min ago
       Docs: man:memcached(1)
   Main PID: 1249 (memcached)
      Tasks: 10 (limit: 19058)
     Memory: 1.9M
     CGroup: /system.slice/memcached.service
             +1249 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid



Там и путь к скрипту старта.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063622
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
далее я начал вычленять элемент - на котором все стопорится- вроде нашел ,по крайне мере по логам - он последний берется в работу и все виснет
я значит беру этот элемент и удаляю из списка,но один хрен приложение постигает таже участь приблизительно на том же месте
тред дамп я снять не могу - как выше заметили нужен установленный jdk,а его нет и установить не дадут
что я начал делать дальше - я прогнал локально - тоесть на винде,на другой системе ,на другой версии постгрес
и опять уперся рогом ровно в тоже самое место ,что и на серваке...
при этом вообще не понятно что проиходит- так как в логах тишина

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

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

пс.как снять тред дамп с ctl службы я завтра спрошу у админов- может есть какой то иной способ
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063624
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
автор900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %
Ок, ну эт хорошо, значит локализовали что это хотя бы наше приложение. А дальше нужно искать уже точно строку кода, вполне возможно что там какой-то баг который в вечный цикл вводит приложение. Это очень быстро отыскивается с помощью thread dump'a. И этому нужно обязательно обучиться - снимать дампы это одно из первых и лучших средств траблшутинга. Поэтому лучше сразу потратить время и разобраться.
авторCommand 'jcmd' not found, but can be installed with:jcmd устанавливается вместе с JDK. Т.е. находится в JAVA_HOME/bin, ищи там. Однако в комплект JRE эта утилита не входит, поэтому если у тебя именно JRE - се ля ви. Нужно будет поставить JDK.
pavel_nvне знаю как насчет jcmd
но на моем опыте обычно используется
jstack <PID> - снять тред-дамп
jmap <PID> - снять хип-дампЭти тоже входят только в JDK, но на сегодняшний день jcmd их вытесняет. Она в себя включает эти две возможности, а также многие другие:
jcmd helpThe following commands are available:
Compiler.CodeHeap_Analytics
Compiler.codecache
Compiler.codelist
Compiler.directives_add
Compiler.directives_clear
Compiler.directives_print
Compiler.directives_remove
Compiler.perfmap
Compiler.queue
GC.class_histogram
GC.finalizer_info
GC.heap_dump
GC.heap_info
GC.run
GC.run_finalization
JFR.check
JFR.configure
JFR.dump
JFR.start
JFR.stop
JVMTI.agent_load
JVMTI.data_dump
ManagementAgent.start
ManagementAgent.start_local
ManagementAgent.status
ManagementAgent.stop
Thread.print
VM.class_hierarchy
VM.classloader_stats
VM.classloaders
VM.command_line
VM.dynlibs
VM.events
VM.flags
VM.info
VM.log
VM.metaspace
VM.native_memory
VM.print_touched_methods
VM.set_flag
VM.stringtable
VM.symboltable
VM.system_properties
VM.systemdictionary
VM.uptime
VM.version
help

я могу локально прогнать впринципе эти данные,локально у меня установлен jdk ,правда не линукс ,а винда.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063625
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там - обычный bash-script. По нему - найдешь где установлена JDK/JRE.

Найдешь - дальше будем дейстовать по обстановке. Вполне вероятно что JDK не установлен. Тогда надо
будет его доустановить. apt install ... e.t.c.
...
Рейтинг: 0 / 0
25 сообщений из 114, страница 2 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Блокировка потоков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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