2010-11-30 5 views
5

Selon this documentation MSDN pour ProcessModel, les AUTOCONFIG = true définit les attributs suivants conformément à cet article KB:configuration ASP .NET ProcessModel

MaxWorkerThreads, maxIoThreads, minFreeThreads, minLocalRequestFreeThreads, maxConnection

Pour vérifier ce paramètre, j'ai une application web exemple dans ASP .NET 3.5 ayant le code suivant dans l'événement 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(); 

Je reçois le Follo sortie de l'aile quand je lance la page avec autoConfig à false d'abord, puis à true:

autoConfig = false: Min: 2, 2 Max: 40, 40 MAXCONNECTIONS: 10 réglages de httpRuntime: 8, 4

autoConfig = true: Min: 2, 2 Max: 200, 200 Maxconnections: 24 Paramètres httpruntime: 8, 4

autoConfig = false fonctionne comme prévu et les valeurs par défaut sont visibles dans la sortie, mais la sortie est définie sur vrai m'a surpris un peu:

  1. Il définit les maxWorkerThreads et maxIoThrea ds attributs correctement et donc la sortie de 200 (100x2 sur un processeur dual core).
  2. Cependant, il ne semble pas définir les minWorkerThreads attribut qui selon le KB devrait être: MinWorkerThreads = maxWorkerThreads/2
  3. En outre, selon la documentation MSDN autoConfig = true réglage ne définit les minFreeThreads et minLocalRequestFreeThreads attribuer à valeurs recommandées dans la base de connaissances, mais cela ne semble pas être le cas non plus. Je reçois les valeurs par défaut de 8 et 4.

Je suis un peu confus, des idées sur ce qui se passe ici? Ai-je eu l'échantillon faux ou quelque chose?

+0

J'essaie d'améliorer le débit de mon service web (actuellement, je charge 100% du CPU pour seulement quelques utilisateurs) et j'ai rencontré exactement le même problème. J'obtiens 20 pour MaxWorkerThreads lorsque AutoConfig est activé. – R4cOON

+0

J'utilise l'application ASP.NET 3.5 en IIS6 sur une machine dual core et j'obtiens les mêmes résultats que vous. –

+0

Quelque chose ne va pas, je ne sais pas quoi? Nous avons fini par bricoler les paramètres manuellement dans web.config après avoir défini l'attribut AutoConfig sur false! – Metallikanz

Répondre

0

Je suppose que vous faites affaire avec le même genre de logique ci-dessous:

WCF 4: Higher Default Throttling Settings for WCF Services

Dans WCF 4, nous avons révisé les valeurs par défaut de ces paramètres afin que les gens ne doivent pas changer la par défaut dans la plupart des cas. Voici les principaux changements:

· MaxConcurrentSessions: par défaut est 100 * ProcessorCount

· MaxConcurrentCalls: défaut est 16 * ProcessorCount

· MaxConcurrentInstances: par défaut est le total des deux ci-dessus, qui suit le même schéma que précédemment.