Это сложный вопрос, и, как я понимаю, это также частично зависит от:
- процессора физических и логических атрибутов
- Процесс ограничения по очереди запросов модель
- модель процесса максимальные потоки IO
- Максимальные одновременные запросы на процессор
- Максимальные совпадающие потоки на процессор
Я не притворяюсь, что много знаю об этом, я действительно этого не делаю. Но я пытаюсь понять, как это работает. Из того, что я могу собрать я использую эту установку (я не дам абсолютно никаких гарантий, что это лучшая настройка):
RuntimeConfiguration.ProcessModelRequestQueueLimit = 5000 * Environment.ProcessorCount RuntimeConfiguration.ProcessModelMaxIoThreads = 100 * Environment.ProcessorCount HostingEnvironment .MaxConcurrentRequestsPerCPU = 5000 HostingEnvironment.MaxConcurrentThreadsPerCPU = 0 System.Net.ServicePointManager.DefaultConnectionLimit = Int32.MaxValue (ну, я использую только 48 здесь атм, так как он кажется достаточно для моей цели, и гораздо быстрее, чтобы начать)
Эта настройка - mos на основе этой статьи:
http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx