2010-11-30 3 views
5

Согласно this документации MSDN для ProcessModel, то автонастройки = истинные наборы следующие атрибуты в соответствии с этой статьей KB:ASP .NET ProcessModel конфигурации

maxWorkerThreads, maxIoThreads, minFreeThreads, minLocalRequestFreeThreads, maxConnection

Для проверить этот параметр, у меня есть образец веб-приложение в ASP .NET 3.5, имеющий следующий код в случае page_load:

 int w, c; 

     ThreadPool.GetMinThreads(out w, out c); 

     // Write the numbers of minimum threads 
     Response.Write("Min: " + string.Format("{0}, {1}", w, c)); 

     w=0; 
     c = 0; 

     ThreadPool.GetMaxThreads(out w, out c); 

     Response.Write(" Max: " + string.Format("{0}, {1}", w, c)); 

     Response.Write(" Maxconnections: " + ServicePointManager.DefaultConnectionLimit); 

     Configuration conf = ConfigurationManager.OpenMachineConfiguration(); 
     ConfigurationSectionGroup secGrp = conf.SectionGroups["system.web"]; 
     ConfigurationSection sec = secGrp.Sections["httpRuntime"]; 
     Response.Write(" httpruntime settings: " + sec.ElementInformation.Properties["minFreeThreads"].Value + ", " + 
                sec.ElementInformation.Properties["minLocalRequestFreeThreads"].Value); 

     Response.Flush(); 

я получаю FOLLO выход крыло, когда я запускаю страницу с автонастройкой значения ЛЖИ первым, а затем установить истину:

автонастройки = ложь: Минимум: 2, 2 Макс: 40, 40 MaxConnections: 10 Настройки httpruntime: 8, 4

autoConfig = true: Min: 2, 2 Max: 200, 200 Maxconnections: 24 httpruntime settings: 8, 4

autoConfig = false работает как ожидалось, а значения по умолчанию можно увидеть на выходе, однако вывод при установке на правда удивил меня немного:

  1. Он установил maxWorkerThreads и maxIoThrea ds, и, следовательно, выход 200 (100x2 на двухъядерном процессоре).
  2. Однако, как представляется, не установить в minWorkerThreads атрибут, который в соответствии с КБ должно быть: minWorkerThreads = maxWorkerThreads/2
  3. Кроме того, в соответствии с настройкой автонастройки = верно ли установить minFreeThreads и minLocalRequestFreeThreads приписывать документации MSDN значения, рекомендуемые в КБ, но это, похоже, не так. Я получаю значения по умолчанию 8 и 4.

Я немного смущен, любые идеи относительно того, что здесь происходит? Я получил образец неправильно или что-то еще?

+0

Я пытаюсь улучшить пропускную способность webservice (в настоящее время получаю 100% загрузку процессора только для нескольких пользователей), и я столкнулся с той же проблемой. Я получаю 20 для MaxWorkerThreads, когда включен AutoConfig. – R4cOON 2011-01-17 13:05:47

ответ

0

Я думаю, вы имеете дело с такой же логикой ниже:

WCF 4: Higher Default Throttling Settings for WCF Services

В WCF 4, мы пересмотрели значения по умолчанию этих параметров, так что люди не должны изменить по умолчанию в большинстве случаев. Ниже приведены основные изменения:

· MaxConcurrentSessions: По умолчанию 100 * ProcessorCount

· MaxConcurrentCalls: по умолчанию 16 * ProcessorCount

· MaxConcurrentInstances: по умолчанию это сумма приведенной выше двух, который следует той же схеме, что и раньше.