Linux: Несоответствие между потоками, созданными приложением tomcat, и длиной очереди выполнения

Linux: 16 ГБ оперативной памяти, 2 процессора

На машине Linux, на которой запущен tomcat с примерно 800 потоками, которые я получил с помощью jvisualVM, но при длине очереди выполнения я получаю только 50, потому что ЦП загружен на 100%, а заблокированные потоки не отображаются. Я получил это значение через NMON.

поэтому у меня возникли следующие вопросы:

  1. Согласно моему пониманию, для каждого потока Java будет создан один поток ядра, тоже есть какие-то подсказки. много используемых ссылок

0
задан 21 April 2016 в 13:17
1 ответ

С этими настройками, предполагая, что вы используете разъем BIO (1 поток на соединение), и среднее время отклика 50 миллисекунд (так что каждый поток может давать 20 ответов в секунду), вам следует иметь возможность обрабатывать около:

(20 ответов / сек * 800 потоков) + 200 (количество приемов) + net.ipv4.tcp_max_syn_backlog (стек TCP) соединений в секунду.

Но что касается вашего комментария, вы интересует размер HW. На этом этапе, если у вас есть возможность провести другие тесты, поскольку ваш процессор был загружен на 100%, попробуйте повторить тест с половинной нагрузкой. Повторите увеличение / уменьшение нагрузки, пока не достигнете 100% ЦП со средней нагрузкой = количеству ядер. Теперь у вас есть максимальная нагрузка, с которой вы можете справиться с реальным оборудованием. Зная это и ожидаемую нагрузку, вы теперь можете узнать, сколько еще процессоров вам нужно.

Надеюсь, это поможет.

0
ответ дан 5 December 2019 в 10:32

Теги

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