Конфигурация ASP .NET ProcessModel

Согласно этой документации в MSDN для ProcessModel, autoConfig=true устанавливает следующие атрибуты в соответствии с этой статьей базы знаний:

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();

Я получаю следующий вывод, когда запускаю страницу с autoConfig, установленным сначала в false, а затем в true:

autoConfig = false: мин: 2, 2 макс: 40, 40 макс соединений: 10 настроек httpruntime: 8, 4

autoConfig=true: мин: 2, 2 макс: 200, 200 макс. соединений: 24 Настройки httpruntime: 8, 4

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

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

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

1 ответ

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

WCF 4: более высокие параметры регулирования по умолчанию для служб WCF

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

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

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

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

Другие вопросы по тегам