machine.config processModel autoConfig=true или false для явных значений в .net 4.0

Привет, я хочу обновить processModel файла machine.config моего сервера. В настоящее время его значение следующее:

  <system.web>
    <processModel autoConfig="true"/>
  </system.web>

Я хочу обновить его с помощью следующих новых изменений:

  <system.web>
    <processModel autoConfig="true"
        maxWorkerThreads = "100"
        maxIoThreads = "100"
        minWorkerThreads = "50"
        minIoThreads = "50"
         />
  </system.web>

Я хочу использовать другие значения processModel (см. значения по умолчанию по адресу: msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx) в качестве значений по умолчанию со значениями, которые я явно определил выше. У меня есть вопрос: каково будет значение autoConfig="?" поскольку некоторые сообщения в Интернете предполагают, что значение autoConfig должно быть «True» (см. https://tiredblogger.wordpress.com/2008/09/17/tweaking-net-machineconfig-for-production-deployments/), так как autoConfig=True устанавливает все в значения по умолчанию, за исключением того, что я явно определяю.

Где, как в другом посте, предполагается, что необходимо установить autoConfig = false, чтобы эти пользовательские значения вступили в силу. (см.: http://geekswithblogs.net/StuartBrierley/archive/2009/09/30/tuning-iis---machine.config-settings.aspx )

В MSDN ( msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx ) определение autoConfig="true/false"

autoConfig=True: указывает, что ASP.NET автоматически настраивает атрибуты в предыдущем списке для достижения оптимальной производительности в зависимости от конфигурации компьютера. autoConfig=False: указывает, что ASP.NET должна использовать явно определенные значения для атрибутов в предыдущем списке.

Еще один вопрос: в соответствии с MSDN, если я установлю autoConfig = False и явно определю четыре вышеуказанных ключевых значения processModel, какими будут значения других ключей processModel, таких как webGarden, memoryLimit, cpuMask и т. д.? мне нужно также установить другие ключи/значения processModel? Я использую эти настройки в файле machine.config приложения asp.net 4.0, размещенного на iis8 Win Server 2012.

Заранее спасибо за помощь.


person Ashar    schedule 16.05.2016    source источник


Ответы (1)


При чтении о processModel autoConfig=true/false здесь (MSDN https://msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx) говорится, что когда это значение равно true, пять перечисленных здесь атрибутов конфигурации (maxWorkerThreads, maxIoThreads, minFreeThreads, minLocalRequestFreeThreads и maxConnection) «устанавливаются в соответствии со статьей базы знаний по адресу http://support.microsoft.com/?id=821268».

Более того, невозможно установить minWorkerThreads выше, чем maxWorkerThreads… Среда выполнения обнаруживает несоответствие и просто устанавливает значение «min» по умолчанию. autoConfig не влияет напрямую на minWorkerThreads и minIoThreads, но вместо этого на них влияют их аналоги, такие как maxWorkerThreads и maxIoThreads.

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

<processModel autoConfig="true"
         />

Результат: maxWorkerThreads 400 maxIoThreads 400 minWorkerThreads 4 minIoThreads 4

<processModel autoConfig="false"
         />

Результат: maxWorkerThreads 400 maxIoThreads 400 minWorkerThreads 4 minIoThreads 4

<processModel autoConfig="true"
        maxWorkerThreads = "70"
        maxIoThreads = "70"
        minWorkerThreads = "35"
        minIoThreads = "35"
         />

Результат: maxWorkerThreads= 400 maxIoThreads= 400 minWorkerThreads= 140 minIoThreads= 140

<processModel autoConfig="false"
        maxWorkerThreads = "70"
        maxIoThreads = "70"
        minWorkerThreads = "35"
        minIoThreads = "35"
         />

Результат: maxWorkerThreads = 280 maxIoThreads = 280 minWorkerThreads = 140 minIoThreads = 140

<processModel autoConfig="false"
        maxWorkerThreads = "150"
        maxIoThreads = "150"
        minWorkerThreads = "70"
        minIoThreads = "70"
         />

Результат:

maxWorkerThreads= 600
maxIoThreads =600
minWorkerThreads =280
minIoThreads =280


<processModel autoConfig="true"
        maxWorkerThreads = "150"
        maxIoThreads = "150"
        minWorkerThreads = "70"
        minIoThreads = "70"
         />

Результат:

maxWorkerThreads= 400
maxIoThreads =400
minWorkerThreads =280
minIoThreads =280
person Ashar    schedule 27.05.2016
comment
Как вы подтверждаете полученное значение конфигурации? Вы просто сами считаете? Или есть такой инструмент, как appcmd, который будет сообщать об этих значениях? - person user2565663; 21.11.2017