Я спрашиваю здесь, потому что не могу найти много информации по этому поводу ...
Каково основное использование параметра «Потоки ввода-вывода» и «Максимальное количество потоков задач» в конфигурации рабочих подсистемы ввода-вывода?
Везде, где я читал, люди говорят, что «потоки Io» определяют количество одновременных запросов, которые может обрабатывать сервер, и что «Максимальное количество потоков задачи» - это максимальное количество одновременных запросов, которые может обработать сервер.
Значит ли это, что если я устанавливаю «Потоки Io» равными 50, это означает, что JBoss может одновременно обрабатывать 50 запросов браузера?
У меня есть сайт, где требуется возможность обслуживать 1500 одновременных пользователей в течение 15 секунд. И выполнение каждого запроса не должно занимать более 3 секунд. Это включает в себя загрузку html, js, css и всех файлов jpg, которые нужны браузеру.
Означает ли это, что мне нужно установить «Потоки ввода-вывода» на большее число, например 100, а «Максимальное количество потоков задачи» на 150?
Я пробовал установить «Максимальное количество потоков задачи» на 150 и даже 250, и, похоже, это замедляет работу моего сайта.
Кто-нибудь может объяснить, как работают эти 2 настройки?
@IWantSimpleLife, поскольку @akostadinov ссылается на документацию, описывает дизайн и то, как работа по «блокировке ввода-вывода» отделена от работы обработчика. Я думаю, что я прав, отвечая на ваш вопрос, что «потоки ввода-вывода» и «максимальное количество потоков задач» не связаны напрямую. Я говорю это, потому что они относятся к двум отдельным группам потоков. Первый - это «потоки рабочего ввода-вывода», который описывает начальную группу связанных с вводом-выводом, обработчиков «чтения» и «записи», которые прослушивают каналы и события nio. В идеале только 1 поток в пуле ввода-вывода, и он должен никогда выполнить блокирующую (сетевую или файловую) обработку. В Другой Группа обычно называется группой «Потоки рабочих задач». Которая предназначена для выполнения работы по блокировке. Один из настройки этой второй группы будет размер «Максимальное количество потоков задачи».
Обычно вам не нужно иметь отдельный поток ввода-вывода для каждого пользовательского соединения. Вам может понадобиться столько потоков задач, сколько одновременных пользователей, в любой момент, чтобы избежать замедления. Вы можете попробовать значения по умолчанию и посмотреть, как они работают в вашем приложении. См. Эти статьи поддержки:
Обратите внимание, что EAP 7.2 имеет дополнительную конфигурацию основных потоков для повышения эффективности.
Обновление: если вам нужны более подробные инструкции, лучше проверьте полную Руководство по настройке производительности Red Hat Enterprise Application Platform.
Обновление 2: поскольку EAP 7 использует Undertow, чтобы понять, что делают IO и рабочий поток, представить документы должен дать некоторые подсказки:
Управление потоками ввода-вывода и рабочих потоков
Рабочий XNIO управляет как потоками ввода-вывода, так и пулом потоков, который может использоваться для блокировки задач. Как правило, неблокирующие обработчики будут запускаться из потока ввода-вывода, в то время как блокирующие задачи, такие как вызовы сервлетов, будут отправляться в пул рабочих потоков.