Здравствуйте, Митяй, Вы писали:
М>Думаю, что эта информация вряд ли поможет. Поскольку проблема идентифицирована: расширяем количество потоков — увеличивается конкуренция (слишком много переключений контекста и т.п.), уменьшаем — уменьшается утилизация ЦПУ (поскольку много потоков просто в wait'е).
Это всё конечно правильно, но есть кое-какие нюансы. Пул базируется на Completion port, а этот механизм довольно хорошо оптимизирует использование процессаров своими потоками. Перегрузить планировщик скорее можно созданием своих потоков, неподконтрольных пулу. Я как-то проводил небольшие тесты, и мне не удалось заставить пул активировать потоков более, чем имеется процессоров, разумеется при условии, что потоки активны, не уходят в спячку.
По-моему, такие параметры, как число активных(конкурирующих за процессор), активированных но спящих, и доступных пулу потоков, вкупе с величинами загрузки процессоров, могли-бы быть полезны при анализе ситуациим.
Но Вам на месте, несомненно, лучше видно и проще оценить ситуацию