Crashs fréquents de WSUS 4.0

Depuis quelques jours, un serveur WSUS plantait au bout de quelques minutes de fonctionnement, sans dysfonctionnement notable côté système. Les logs de WSUS ne donnaient rien de particulier : toutes les requêtes y étaient journalisées, jusqu’au plantage sans code d’erreur particulier. Il suffisait d’un iisreset pour redonner l’accès au service, mais hors de question de créer un tâche planifiée pour effectuer un iisreset toutes les 5 minutes pour palier au dysfonctionnement.

Message d’erreur apparaissant sur la console WSUS peu de temps après le redémarrage du service.

J’avais cependant dans le journal d’événements Windows, deux entrées récurrentes, avec pour code d’erreur 5013 et 5138, et source « WAS ». Ces erreurs indiquent qu’une application utilisée dans le pool applicatif WsusPool n’a pas communiqué et ne s’est pas terminée dans le temps imparti.

J’ai procédé à quelques changements de variables concernant le pool applicatif WsusPool :

  • Queue Length : passage à 25000 au lieu de 5000 (il s’agit du nombre maximal de requêtes HTTP qui peuvent être en attente) ;
  • Augmentation de la Virtual Memory Limit à 5 Go (pour 8 installés physiquement sur le serveur) ;
  • Passage du « Service Unavailable » Response Type de HttpLevel vers TcpLevel : ceci permet d’éviter de renvoyer une erreur HTTP 503 Service Unavailable lorsque le serveur ne peut traiter la requête. Le serveur va à la place remettre en file d’attente la requête HTTP.

J’ai procédé ensuite à un redémarrage complet du serveur, WSUS fonctionne désormais depuis plus de 2 heures consécutives et aucun dysfonctionnement n’est à déplorer.