Nous avons une configuration d'environnement MSMQ assez grande qui a décidé aujourd'hui de s'arrêter.
(Tout est une machine virtuelle sous vSphere 4.0 Update 1)
Il existe 8 serveurs Web qui reçoivent des données des clients sur le net. Ces machines ont toutes MSMQ installé et envoient simplement le message MSMQ au serveur MSMQ principal. Les messages sont actuellement empilés dans la file d'attente sortante. Ces machines sont Windows 2008 Web Edition avec 2 Go de RAM et 2 vCPU.
Nous avons un serveur MSMQ en cluster (Windows Cluster Server) qui reçoit les messages des 8 serveurs Web. Il n'y a pas de limite sur la quantité de données pouvant être dans les files d'attente. Le disque dur est de 50 Go et il y a 46 Go d'espace libre. Ces machines sont Windows 2008 Enterprise Edition avec 8 Go de RAM et 4 vCPU. Le cluster avait auparavant 2 processeurs virtuels, mais la charge du processeur atteignait 100%, j'ai donc augmenté les deux nœuds du cluster Windows à 4 processeurs virtuels.
Il y a 4 serveurs d'applications qui lisent les messages des files d'attente et les traitent.
Normalement, tout fonctionne parfaitement, mais pas aujourd'hui.
Ce matin, tout se déroule très lentement. Les 8 serveurs Web affichent actuellement jusqu'à 300 000 messages placés dans les files d'attente sortantes. Le serveur en cluster affiche actuellement plus d'un million de messages dans les files d'attente (certains ne dépassent pas 200 ko).
Si je regarde perfmon sur les 8 serveurs Web, cela montre que je fais en moyenne 2 messages envoyés par seconde. Si je regarde perfmon sur le cluster, il montre que ~ 7 messages par seconde arrivent dans le cluster.
Les machines qui font la lecture ne reçoivent pas beaucoup de messages chacune. Les services les plus rapides reçoivent 10 à 12 messages par seconde, les plus lents affichent 0 ou 1.
Le seul changement récemment est que nous avons changé le nombre de serveurs Web frontaux de 4 à 8. Nous l'avons fait il y a environ 2 semaines sans problème. Mardi, nous les avons mis hors tension pour voir comment les 4 autres pouvaient gérer la charge. Mercredi, nous avons rallumé les quatre nouvelles machines.
Le disque sur le cluster affiche un E / S très faible et aucune file d'attente.
Pour être sûr, j'ai mis à jour PowerPath vers la dernière version, mais cela n'a aidé personne.
Les 8 serveurs Web sont sur un vLAN, et les serveurs en cluster et les serveurs d'applications sont sur un deuxième vLAN. Il n'y a pas de pare-feu entre les vLAN.
Et il n'y a rien d'utile dans l'application ou les journaux système sur aucune des machines.
la source
Réponses:
Chaque fois que quelqu'un dit avoir plus d'un million de messages, les klaxons d'alarme se déclenchent! Les messages nécessitent la gestion de la mémoire du noyau (pool paginé). Si vous avez un si grand nombre de messages, vous épuisez peut-être ce qui est disponible sur le serveur en cluster. Un nombre optimal pour le nombre de messages dans une file d'attente est zéro - assurez-vous que vous pouvez normalement traiter les messages plus rapidement qu'ils ne peuvent arriver.
Je recommanderais d'arrêter les serveurs Web et de traiter complètement l'arriéré des messages avant de les remettre en ligne.
Élément de référence 4 de ce billet de blog: http://blogs.msdn.com/johnbreakwell/archive/2006/09/18/insufficient-resources-run-away-run-away.aspx
Vive John Breakwell (MSFT)
la source
J'ai demandé à l'un de nos administrateurs système et il a dit que notre point magique était de 4 serveurs Web max. Essayez également la capture de paquets pour voir ce qui se passe. Y a-t-il beaucoup dans l'authentification pour AD aussi? Avec la façon dont MSMQ est bavard, vous devez limiter les chemins réseau et éventuellement le chemin d'authentification.
HTH, Chuck.
la source
Référencer votre commentaire sur le manque d'administration à distance, oui, ce n'est pas une bonne histoire avec MSMQ et les compteurs de perf. Pour ceux qui suivent le fil et veulent savoir quelles combinaisons de systèmes d'exploitation fonctionnent, consultez le blog Motley Queue:
Compteurs de performances MSMQ 4.0 et clé de Registre NetNameForPerfCounters http://blogs.msdn.com/motleyqueue/archive/2007/12/14/msmq-4-0-performance-counters-and-the-netnameforperfcounters-registry-key.aspx
Vive John Breakwell (MSFT)
la source