Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Arnaud CLERET


Astuces et News : .Net, BizTalk, Team System, SQL ...

Actualités

Tuning ASP.NET

Voilà, je sors en fait d'une période de tests de montée en charge sur une plate-forme distribuée avec Web Services, services NT multi-thread, BizTalk et toute la mécanique qui va bien ... Ma plus grande surprise a été de constater les effets du tuning sur les paramètres d'exécution d'ASP.NET.

Lors des tests, nous avons constaté des erreurs au niveau de BizTalk lors de consommation de Web Service dans les orchestrations :

System.InvalidOperationException - There were not enough free threads in the ThreadPool object to complete the operation.

Ce résultat était obtenu à partir d'une configuration par défaut du Framework .Net permettant d'établir un premier test de référence. Nous avons donc appliqué des optimisations sur les options de configuration ASP.NET contenues dans le fichier "machine.config". Les données suivantes sont évaluées pour un serveur bi-processeurs.

Dans "connectionManagement" :

  • MaxConnection : 24 (2 par défaut)

Dans "processModel" :

  • MaxIoThreads : 100 (20 par défaut)
  • MaxWorkerThreads : 100 (20 par défaut)
  • minWorkerThreads : 50 (1 par défaut)
  • minIoThreads : 25 (1 par défaut)

Dans "httpRuntime" : Pour les paramètres concernant le nombre minimum de threads libre, aucune règle n'existe précisément et il faut donc affiner en fonction de la volumétrie des flux Http

  • minFreeThreads : 176 (8 par défaut)
  • minLocalRequestFreeThreads : 152 (4 par défaut)

Les règles de calcul permettant d'aboutir à ce paramétrage et toutes les infos nécessaires : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt17.asp

Le premier constat est la différence entre les valeurs par défaut et celles recommandées par Microsoft !

Nous avons rejoué les tests, et là c'est carémment bluffant ! Pour traiter l'ensemble des flux émis, la paramétrage à permis de passer de plus de 10h de traitements à moins d'1h !

Autre constat, ces optimisations ont certes permis d’améliorer les temps de traitements en parallèles mais ont aussi et surtout permis de diminuer la charge CPU engendrée sur les serveurs et surtout au niveau de BizTalk (-40 %) lors des traitements effectués en simultanés car lui aussi expose des Web Services et se retrouve donc client et serveur.

Bref, tout ça pour dire qu'il est donc intéressant de se pencher sur l'optimisation des applications et du Framework .Net avant de courir s'acheter un nouveau serveur ...

*** Billet importé de l'ancien blog. ***

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 30 mars 2006 17:55 par arno
Classé sous : , ,

Commentaires

arno a dit :

Article très intéressant.

Merci.

Manralf

# septembre 20, 2008 18:00

arno a dit :

Très intéressant en effet, je n'avais pas vu le guide MS. Apparemment les modèles de threading d'ASP .Net ont un peu changé en version 2.0, notamment sur la dépendance vis à vis du ThreadPool et l'usage systématique d'un HttpWebRequest asynchrone pour appeler des web services via le proxy (ce qui ajoute un workitem dans le threadpool, comme tout traitement asynchrone).

yartz

# septembre 20, 2008 18:00

arno a dit :

la limite à 2 de maxconnection provient des spécifications HTTP/1.1 (RFC2616)

amethyste

# septembre 20, 2008 18:01
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- ProcDump 6.0 : support du filtrage sur messages d'exceptions .NET, des filtres multiples et du ciblage par nom de service par CoqBlog le 05-20-2013, 14:50

- Votez pour le TOP 10 des influenceurs SharePoint francophones ! par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 12:59

- [Conf’SharePoint] Dernier rappel ! :-) par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:09

- [ #SharePoint 2013 ] les modèles de sites standards… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:03

- 10 erreurs de compréhension concernant SharePoint… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 08:27

- Conf’SharePoint : 10 bonnes raisons pour ne pas la rater par Le petit blog de Pierre / Pierre's little blog le 05-14-2013, 02:24

- [Event] Soirée de lancement Agile .NET France à Lyon par Blog Agile/ALM de Vincent THAVONEKHAM le 05-13-2013, 01:29

- .NET / Debug : inspection de la mémoire d'applications .NET (dump ou processus live) : première livraison d'une librairie .NET par Microsoft par CoqBlog le 05-11-2013, 22:21

- SharePoint : Incompatibilité avec Internet Explorer 10 (IE10) par Blog Technique de Romelard Fabrice le 05-08-2013, 16:29

- AutoSPInstaller pour SharePoint 2013 maintenant disponible en “RTM” par Julien Chable le 05-06-2013, 23:30