Модель потоков Tomcat - PullRequest
       4

Модель потоков Tomcat

0 голосов
/ 15 января 2019

Любопытно найти максимальное количество одновременных запросов, которые могут быть выполнены моим приложением, развернутым на tomcat.

Что я знаю:

В конфигурации Tomcat есть некоторые параметры, которые могут мне помочь, например:

  1. acceptCount - Максимальная длина очереди для входящих запросов на соединение, когда используются все возможные потоки обработки запросов.Любые запросы, полученные при заполнении очереди, будут отклонены.Значение по умолчанию: 100.

  2. MaxConnections - максимальное количество соединений, которые сервер будет принимать и обрабатывать в любой момент времени.Когда этот номер будет достигнут, сервер примет, но не обработает, еще одно соединение.

Что я хотел бы знать:

  1. Достаточно ли приведенных выше параметров, чтобы знать максимальное количество «одновременных» запросов, которые моё приложение можетсправиться?

  2. Допустим, максимальное количество соединений равно 200, тогда это означает, что будет создано 200 потоков (по 1 на каждый запрос), если поступит 200 одновременных запросов.
    Тогда, скажем, все этоПроцессорные запросы / операции.Так не ухудшается ли производительность, чтобы порождать 200 потоков?Я считал, что если запросы / операции требуют значительных ресурсов процессора, то максимальное количество потоков, порождаемых JVM, должно дополнять количество ядер.(скажем, 16)

1 Ответ

0 голосов
/ 15 января 2019

Любопытно найти максимальное количество одновременных запросов, которые могут быть выполнены моим приложением, развернутым на tomcat.

Вы не можете без учета многих параметров, таких как:

  • аппаратная мощность (сколько процессоров, какой процессор, сколько памяти)
  • фактические характеристики вашей рабочей нагрузки

Другими словами: не может быть универсального / универсального ответа на ваш вопрос. Если вы действительно беспокоитесь о точных деталях, то эксперименты - единственный путь.

Рабочая нагрузка «смешанного типа», работающая на мощном современном сервере, должна легко обрабатывать 200 потоков параллельно. Но, конечно, если каждый запрос вызывает миллиарды операций ввода-вывода в секунду или требуется 1 час реального времени процессора, то 10 параллельных запросов могут привести к сбоям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...