web-dev-qa-db-fra.com

Quels sont les paramètres optimaux pour le recyclage des pools d'applications dans IIS7 dans un environnement partagé?

Quels sont les paramètres optimaux pour le recyclage des pools d'applications dans IIS7 dans un environnement partagé?

enter image description here

32
GrZeCh

En tant qu'hébergeur, vous voulez certainement recycler sur la mémoire et le temps, potentiellement les limites de demande et le processeur. Vous voulez être assez agressif sur ces limites, mais assurez-vous de les publier auprès de vos clients.

Mémoire - 512 pour une boîte x86, peut-être 768. Pour x64, vous pouvez régler cela beaucoup plus haut en fonction du nombre de hôtes par serveur. Il vous suffit d'être prudent et de regarder les événements de recyclage de votre pool d'applications sur les problèmes de mémoire.

Heure - Nous recyclons généralement à 1 h du matin, plus ou moins (premier site 1:01, deuxième 1: 11, troisième 1:21, juste pour que vous n'ayez pas tout le recyclage en même temps)

Limite de demandes - 35 000 était la valeur par défaut pour IIS6, mais ce nombre est assez arbitraire et très dépendant du site en question . Pour les petits sites d'utilisation, le recyclage nocturne commencera bien avant que vous n'obteniez 35 000 demandes.

[~ # ~] cpu [~ # ~] - 95%/1 minute limit/KillW3WP, mais utilisez-le soigneusement . Ma compréhension de cela est que si le CPU atteint 95% + au-dessus de la limite de 1 minute pour ce processus de travail, le processus de travail est tué et ne peut pas redémarrer pour le reste de la limite lorsque Action est définie sur KillW3WP. Vous voudrez peut-être essayer NoAction au départ et regarder attentivement vos journaux d'événements.

Recyclez les journaux d'événements - Vous voulez vous assurer que vous enregistrez les recyclages du pool d'applications pour chaque seuil d'événement que vous définissez - c'est-à-dire si vous limitez en fonction des limites des demandes, assurez-vous que la journalisation de la limite des demandes est activée.

Une chose à retenir est que vous devriez définir retail="true" dans le <deployment> élément dans votre machine.config :

<system.web>
    <!--
        <deployment
            retail = "false" [true|false]
        />
    -->
    <deployment retail="true" />
</system.web>

Ne pas définir cela permettra à un site d'activer le débogage, ce qui permet des délais illimités dans les demandes - pas exactement idéal pour un hébergeur ...

35

Si vous avez un site à fort trafic, utilisez un programme de recyclage long. Si vous avez un site à faible trafic, utilisez une planification plus courte/par défaut pour économiser de la mémoire.

J'ai appris cela du blog d'Al Zabir: http://msmvps.com/blogs/omar/archive/2008/10/04/best-practices-for-creating-websites-in-iis-6-0. aspx

Daniel S. a raison, vos variables de session sont détruites lors du recyclage, alors assurez-vous de bien tester cela ou d'avoir une bonne protection/récupération contre les erreurs lors de l'obtention de vos objets de session.

2
Ricardo Villamil

vous devez adapter les paramètres à vos besoins, prendre en compte la quantité de mémoire dont vous disposez et les heures de pointe d'utilisation de votre site/application Web.

Tenez également compte de l'utilisation de la mémoire de votre site/application Web, comme s'il y avait des fuites de mémoire que vous pourriez recycler plus souvent que vous ne le pensez.

Pesez les fuites par rapport au coût du recyclage, comme indiqué ci-dessus, vous perdrez les variables d'état.

1
Jamie Savin

Conseil: lorsque vous recyclez votre application, toutes vos variables de session sont détruites ... alors soyez prudent!

À mon humble avis, conservez les valeurs par défaut.

1
Daniel Silveira