[IIS/SharePoint] Comment effectuer un WarmUp automatique de vos applications

Inutile de présenter ce qu’est le warmup, chaque SharePointeur en aura fait les frais après avoir lancé un IISReset ou simplement en étant le premier à appeler une page SharePoint le matin. Il y a nombre de différentes techniques qui vont de bon vieux scripts VBS à des solutions plus complexes comme des addons IIS ou des scripts PowerShell.

Mais c’est en diagnostiquant une ferme SharePoint chez un client que j’ai découvert une solution qui m’a le plus plus : lancer le WarmUp en connectant une tâche planifiée aux événements Windows.

Pour ce faire, c’est très simple ! Pour commencer, on va créer une tâche qui, ici, lancera du PowerShell (car PowerShell is good!) :

image

Ensuite, il faut créer un Trigger. Habituellement, c’est ici qu’on spécifie une planification telle que “tous les jours, à 6h du matin”. Dans notre cas, on spécifie que le Trigger sera un événement.

image

Pour trouver lequel, lançons la commande “iisreset” et voyons ce qui est tracé :

image

Le journal System a tracé deux événements de la source “IIS-IISReset” avec des ID différents. Ils font référence à l’arrêt puis au redémarrage d’IIS. C’est la dernière entrée qui nous intéresse.

Nous pouvons donc créer notre Trigger avec les paramètres suivants pour initier un warmup juste après le redémarrage d’IIS :

image

Quid des recyclage manuels ou automatiques ?

Si nous souhaitons lancer un WarmUp dès qu’un Application Pool est recyclée, nous devons modifier les propriétés IIS de l’Application Pool.

image

On a à notre disposition plusieurs évenements pour contrôler finement quels types de recyclages seront interceptés. Dans notre cas, activons “Manual Recycle”.

Ainsi, dès qu’on va demander le recyclage d’un App Pool, on aura l’évenement suivant que nous pourons rajouter comme trigger à notre tâche planifiée :

image

Et avec ça, vous prendrez peut-être un code de retour ?

Toutes les tâches planifiées Windows gêrent un code de retour (Last Run Result). Comme les scripts peuvent parfois devenir complexes, on pourra aller encore plus loin et retourner un code pour tracer si tout s’est bien passé :

[Environment]::Exit(0)

ou bien pour remonter une erreur de traitement avec un retour –1, par exemple :

image

 

Bon réveil à vos fermes !

SPierrick

Publié lundi 30 juillet 2012 14:24 par Pierrick CATRO-BROUILLET
Classé sous , ,
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 :

Commentaires


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