Есть ли какое-то общепринятое соотношение между
- HTTP-коннектор maxThreads (максимальное количество HTTP-потоков, обрабатывающих запросы пользователей),
- HTTP-коннектор acceptCount (максимальная длина очереди для входящих запросов на соединение, когда используются все возможные потоки обработки запросов)
- Свойства конфигурации пула БД maxActive (максимальное количество подключений к БД в пуле)
когда дело доходит до базового веб-приложения, использующего tomcat с интенсивным использованием базы данных?
Я имею в виду, что, например, почти каждое соединение HTTP-запроса интенсивно использует базу данных. Итак, когда у нас, например, гораздо меньше настроенного пула DP maxActive (например, 100), в то время как HTTP-коннектор maxThreads (например, 200) в два раза больше. Тогда может появиться возможность использовать одно и то же соединение с БД для совместного использования HTTP-соединениями. А это может привести к интенсивному использованию БД / блокировке соединений с БД.
Я знаю, что конфигурация веб-HTTP-запросов в большинстве случаев не имеет отношения к конфигурации пула базы данных, но есть ли общие случаи / практики для соотношения свойств (maxThreads / acceptCount maxActive)? Например. является распространенной практикой, чтобы HTTP maxThreads был больше, чем DB maxActive (но думать, что на 100% больше - это слишком много, как в нашем примере - может быть, скажем, на 20 или 50% больше?) и допустим, у нас есть accpetCount с большим значением , чтобы поставить в очередь HTTP-запросы к тому моменту, когда другие HTTP-запросы будут обработаны приложением?
Здесь есть аналогичный вопрос: Tomcat - Настройка maxThreads и acceptCount в соединителе Http но точного ответа на него нет