состояние тредов. Есть следующие состояния: 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%. Имею возможность цпу накинуть.
А программа создает сама по себе больше 39 активных потоков?
В теории да. Сейчас перепроверю.
Да, должна. Что при 5 тпс, что при 20 тпс - максимальное значение - 39.
У вас в коде как потоки создаются?
Вот тут, собственно, загвоздка. Код даже близко не мой. Просто сейчас проблема в блокировке тредов. Поэтому стало интересно - а можно ли менять именно пул раннабл?
Если код не создает больше 39 потоков, то ничего это число не увеличит
Если конечно у ПО нету возможности конфигурировать параметры связанные с потоками
А может понять, почему потоки блочаться?
Мой косяк. Не уточнил. Все написано с использованием спринга. В нем же, насколько я понимаю, есть возможность клнфигурирования пулов
Это было бы слишком идеально :) В этом направлении работы тоже идут.
А зачем изначально начали исследовать? Тормоза или что то ещё
Вам нужен пул веб сервера?
Изначально была деградация по блокировке до 2к тредов. Далее все падало. Сейчас пуллы ограничили. И теперь если 300 потоков занято - летят 500. Я до конца не могу понять, почему при разных нагрузках одинаковые значения по раннабл тредам? При условии, что железа ещё "с головой" хватает.
Не могу точно сказать. Увеличение тредпула на томкете ничего не изменило
Вот эти пулы
Обсуждают сегодня