интересный взгляд, даже не могу представить зачем заранее знать точно сколько запросов будет в сценарии и сколько они будут выполняться, если можно просто перезаложить количество тредов, взяв за основу самый долгий из предполагаемых сценариев?
в сообщении не понятным остался момент про переход от 10 запросов к 10000 потоков, если не сложно можно пример такого антипаттерна?
Вот об этом и говорю.
Есть сценарий, с условными ветками. Он может выполняться за 3 запроса и за 10. И пусть за 3 запроса он выполняется 30 секунд, а за 10 - 90 сек.
Тут пока всё просто.
Рассчитываем профиль нагрузки:
100 сценариев в секунду.
Знаем, что каждый из них должен выполняться 90 секунд максимум. С запасом - 100 сек.
И вот нам надо для старта 100 штук в сек, пул из 100 * 100 = 10 000 потоков.
Хотя могли бы обойтись двумя катушками.
Для сценария в 30 секунд использовать свой пул.
Для сценария в 90 секунд использовать свой пул.
И получилось бы не 10 000 потоков, а меньше.
Для конкретики. Пример с двумя катушками.
Сценарий 1 (3 запроса) - 30 сек, нужно 50 стартов в сек. При шаге 40 сек, нужно 50 * 40 = 2 000 потоков.
Сценарий 2 (10 запросов) - 90 сек, нужно 50 стартов в сек. При шаге 100 сек, нужно 50 * 100 = 5 000 потоков.
И того 7 000 < 10 000.