Конфигурации рабочих процессов JBoss EAP 7, IO Subsystem

Конфигурации рабочих процессов JBoss EAP 7, IO Subsystem

Я спрашиваю здесь, потому что не могу найти достаточно информации по этому вопросу...

Каково основное назначение настроек «Потоки ввода-вывода» и «Максимальное количество потоков задач» в конфигурации рабочих процессов подсистемы ввода-вывода?

Везде, где я читаю, люди говорят, что «потоки ввода-вывода» определяют количество одновременных запросов, которые может обработать сервер, а «максимальное количество потоков задач» — это максимальное количество одновременных запросов, которые может обработать сервер.

Означает ли это, что если я установлю «Потоки Io» равными 50, это значит, что JBoss сможет обрабатывать 50 запросов браузера одновременно?

У меня есть сайт, где требуется обслуживать 1500 одновременных пользователей в течение 15 секунд. И каждый запрос не должен занимать более 3 секунд для завершения. Это включает загрузку html, js, css и всех jpg-файлов, которые нужны браузеру.

Означает ли это, что мне нужно установить «Потоки ввода-вывода» на большее значение, например 100, а «Максимальное количество потоков задачи» на 150?

Я пробовал устанавливать «Максимальное количество потоков задач» на 150 и даже 250, и это, похоже, замедляет работу моего сайта.

Кто-нибудь может объяснить, как работают эти 2 настройки?

решение1

Обычно вам не нужно иметь отдельный поток ввода-вывода для каждого пользовательского соединения. Вам может понадобиться столько потоков задач, сколько одновременно работающих пользователей в любой момент, чтобы избежать замедлений. Вы можете попробовать значения по умолчанию и посмотреть, как они работают для вашего приложения. См. эти статьи поддержки:

Обратите внимание, что EAP 7.2 имеет дополнительную конфигурацию основных потоков для повышения эффективности.

Обновление: если вам нужны более подробные инструкции, лучше проверьте полную версиюРуководство по настройке производительности Red Hat Enterprise Application Platform.

Обновление 2: Поскольку EAP 7 использует Undertow, чтобы понять, что делают IO и рабочий поток,документы по подводному приливудолжно дать некоторые подсказки:

Управление потоками ввода-вывода и рабочими потоками

Рабочий процесс XNIO управляет как потоками ввода-вывода, так и пулом потоков, который может использоваться для блокирующих задач. В общем случае неблокирующие обработчики будут запускаться из потока ввода-вывода, в то время как блокирующие задачи, такие как вызовы сервлетов, будут отправляться в пул рабочих потоков.

решение2

@IWantSimpleLife, как @akostadinov сослался на документацию, описывает дизайн и то, как работа «блокирующего ввода-вывода» отделена от работы обработчика. Я думаю, я прав, отвечая на ваш вопрос, что «потоки ввода-вывода» и «максимальные потоки задач» напрямую не связаны. Я говорю это, потому что они относятся к двум отдельным группам потоков. Первая — «потоки ввода-вывода рабочего процесса», которая описывает начальную группу обработчиков ввода-вывода, связанных с «чтением» и «записью», которые прослушивают каналы и события nio. В идеале только 1 поток в пуле ввода-вывода, и он долженникогдавыполнить блокировку (сетевую или файловую) обработки.другойГруппа обычно называется группой "Worker Task Threads". Которая предназначена для выполнения блокирующей работы. Одна изнастройкиэтой второй группы будет размер «Максимальное количество потоков задачи».

Связанный контент