169 похожих чатов

Всем привет. Если мониторить JVM через актуатор/микрометр - можно видеть

состояние тредов. Есть следующие состояния: blocked, new, runnable, terminated, timed-waiting, waiting. Не могу понять как изменить максимальный пул для runnable(выше 39 не бывает). Играл с async_executor.thread_pool.core_pool_size и async_executor.thread_pool.max_pool_size. Но на runnable это не повлияло.
Вопрос: возможно ли увеличить пул раннабл и если да - то как?
П.с. при использовании всего пула загрузка цпу на уровне 38%. Имею возможность цпу накинуть.

15 ответов

22 просмотра

А программа создает сама по себе больше 39 активных потоков?

Иван-Борисов Автор вопроса
Иван-Борисов Автор вопроса
central hardware
А программа создает сама по себе больше 39 активны...

Да, должна. Что при 5 тпс, что при 20 тпс - максимальное значение - 39.

Иван-Борисов Автор вопроса
central hardware
У вас в коде как потоки создаются?

Вот тут, собственно, загвоздка. Код даже близко не мой. Просто сейчас проблема в блокировке тредов. Поэтому стало интересно - а можно ли менять именно пул раннабл?

Иван Борисов
Вот тут, собственно, загвоздка. Код даже близко не...

Если код не создает больше 39 потоков, то ничего это число не увеличит

central hardware
Если код не создает больше 39 потоков, то ничего э...

Если конечно у ПО нету возможности конфигурировать параметры связанные с потоками

Иван-Борисов Автор вопроса
central hardware
Если код не создает больше 39 потоков, то ничего э...

Мой косяк. Не уточнил. Все написано с использованием спринга. В нем же, насколько я понимаю, есть возможность клнфигурирования пулов

Иван-Борисов Автор вопроса
Dima
А может понять, почему потоки блочаться?

Это было бы слишком идеально :) В этом направлении работы тоже идут.

Иван Борисов
Мой косяк. Не уточнил. Все написано с использовани...

А зачем изначально начали исследовать? Тормоза или что то ещё

Вам нужен пул веб сервера?

Иван-Борисов Автор вопроса
central hardware
А зачем изначально начали исследовать? Тормоза или...

Изначально была деградация по блокировке до 2к тредов. Далее все падало. Сейчас пуллы ограничили. И теперь если 300 потоков занято - летят 500. Я до конца не могу понять, почему при разных нагрузках одинаковые значения по раннабл тредам? При условии, что железа ещё "с головой" хватает.

Иван-Борисов Автор вопроса
Dima
Вам нужен пул веб сервера?

Не могу точно сказать. Увеличение тредпула на томкете ничего не изменило

Иван-Борисов Автор вопроса

Вот эти пулы

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта