Re[3]: [WCF] Асинхронность внутри сервиса
От: Jolly Roger  
Дата: 14.10.10 10:15
Оценка:
Здравствуйте, Митяй, Вы писали:

М>Думаю, что эта информация вряд ли поможет. Поскольку проблема идентифицирована: расширяем количество потоков — увеличивается конкуренция (слишком много переключений контекста и т.п.), уменьшаем — уменьшается утилизация ЦПУ (поскольку много потоков просто в wait'е).


Это всё конечно правильно, но есть кое-какие нюансы. Пул базируется на Completion port, а этот механизм довольно хорошо оптимизирует использование процессаров своими потоками. Перегрузить планировщик скорее можно созданием своих потоков, неподконтрольных пулу. Я как-то проводил небольшие тесты, и мне не удалось заставить пул активировать потоков более, чем имеется процессоров, разумеется при условии, что потоки активны, не уходят в спячку.

По-моему, такие параметры, как число активных(конкурирующих за процессор), активированных но спящих, и доступных пулу потоков, вкупе с величинами загрузки процессоров, могли-бы быть полезны при анализе ситуациим.

Но Вам на месте, несомненно, лучше видно и проще оценить ситуацию
"Нормальные герои всегда идут в обход!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.