Comment améliorer Windows Server 2008 R2 pour gérer de nombreuses connexions?

9

Cela fait déjà quelques jours que j'essaie de comprendre comment résoudre ce problème. Tout d'abord, je gère un site Web avec une vue moyenne quotidienne de 350 000 pages. Auparavant, toute la gestion des annonces (suivi des clics et des impressions de chaque annonce) et le contenu étaient diffusés sur un seul serveur avec les spécifications suivantes:

Serveur 1
Système d'exploitation: Windows 2008 R2 64 bits
Processeur: Intel® Core ™ i5 - 4 cœurs
RAM: 8 Go
Stockage: 2 disques durs de 1 To
Bande passante: 10 To par mois

Pour améliorer la vitesse de notre site Web, j'ai décidé de séparer le script de gestion des annonces sur un autre serveur dédié, car nous avons plus de 15 annonceurs pour 30 annonceurs par page.

Serveur 2
Système d'exploitation: Windows 2008 R2 64 bits
Processeur: Intel® Core ™ i5 - 4 cœurs
RAM: 4 Go
Stockage: 2 disques durs de 300 Go
Bande passante: 10 To par mois

Le problème
Le problème est que Server 1peut gérer à la fois le contenu et le système d'annonces. Maintenant, je retire le système d'annonces et je le mets Server 2. Server 2peut à peine diffuser uniquement le système d'annonces.

Tester

  • Tout d'abord, j'ai déplacé 75% des annonces vers Server 2. Et puis, effectuer un ping vers le serveur: ping -t xxxxx. [J'ai fait le ping pendant 10 minutes et son schéma similaire suivant comme ci-dessous]
Réponse de xxxxx octets = 32 temps = 290 ms TTL = 116
Réponse de xxxxx octets = 32 fois = 289 ms TTL = 116
Réponse de xxxxx octets = 32 temps = 320 ms TTL = 116
Réponse de xxxxx octets = 32 fois = 286 ms TTL = 116
Réponse de xxxxx octets = 32 fois = 286 ms TTL = 116
Réponse de xxxxx octets = 32 fois = 348 ms TTL = 116
Réponse de xxxxx octets = 32 fois = 284 ms TTL = 116
  • Ensuite, j'ai déplacé 100% des annonces vers Server 2. Ensuite, exécutez à nouveau un ping vers le serveur. [J'ai fait le ping pendant 10 minutes et son schéma similaire suivant comme ci-dessous]
Réponse de xxxxx octets = 32 temps = 290 ms TTL = 116
La demande a expiré
Réponse de xxxxx octets = 32 temps = 320 ms TTL = 116
Réponse de xxxxx octets = 32 fois = 286 ms TTL = 116
La demande a expiré
La demande a expiré
Réponse de xxxxx octets = 32 fois = 284 ms TTL = 116

Tentatives

  1. Augmenter MaxUserPortetTcpNumConnection
  2. Redémarrez le serveur
  3. Augmentez IIS Max InstancesetInstance MaxRequests

Ressource serveur

  • Seulement 10% -15% de la connexion réseau est utilisée
  • Seulement 10% -15% du CPU est utilisé
  • Seulement 25% de la mémoire est utilisée
Monkey D Luffy
la source
3
C'est une question bien formulée à mon avis et digne de votes positifs, mais j'ai toujours l'impression qu'il nous manque des indices pour nous aider à résoudre l'énigme.
Ryan Ries
@RyanRies, veuillez indiquer au pointeur les informations manquantes nécessaires pour résoudre cette énigme. En ce moment, j'ai 75% des annonces sur le serveur 2 et 25% des annonces sur le serveur 1. Il fonctionne assez bien maintenant, mais je ne peux pas passer complètement au serveur 2.
Monkey D Luffy
1
Je suis d'accord avec @RyanRies: il nous manque quelque chose. Je voudrais examiner la façon dont le système de diffusion d'annonces est construit: il se pourrait qu'il y ait une dépendance entre le contenu et les services de diffusion d'annonces qui entraîne un retard excessif.
Stéphane
@Stephane non, cela ne devrait pas causer de pings perdus. Les pings ne sont pas gérés par le code de diffusion d'annonces mais directement par la pile TCP. Ce qui signifie fondamentalement qu'ils devraient fonctionner à moins que le serveur ne soit CRAZILY surchargé. Cela semble sérieusement - selon ma réponse - que la bande passante n'est tout simplement pas là. Avant le serveur.
TomTom
Certaines choses qui manquent ici sont 1) que pouvez-vous changer / ne pas changer dans votre environnement? 2) Comment les serveurs Web sont-ils configurés par disque? 3) Les heures de réseau sont-elles internes à l'endroit où vous vous trouvez ou s'agit-il d'un serveur distant? S'il s'agit d'un serveur distant, à quelle distance est-il? 4) si vous avez besoin d'améliorer votre serveur, quelle est votre liberté budgétaire pour ajouter du matériel à l'ensemble 5) les journaux d'événements génèrent-ils des erreurs? 6) Je ne vois pas les résultats des captures de perfmon à la hauteur du trafic 7) Quels sont vos nombres de visiteurs uniques? 8) avez-vous filtré le trafic indésirable?
Techie Joe

Réponses:

4

Eh bien, commençons. C'est plus long.

Vous avez totalement mal évalué les faits ici, il semble. Windows - même le R2 2008 obsolète que vous devez mettre à jour dès que possible - est complètement capable de gérer un volume que mon téléphone portable n'a aucun problème à gérer.

Donc, cela laisse 3 domaines de problèmes possibles:

  • Installation. Vos chauffeurs peuvent être merdiques. Étant donné que vous utilisez un système d'exploitation obsolète, quelle est la qualité de vos pilotes? Mettez-les à jour - cela PEUT causer toutes sortes de problèmes.

  • Réseau. Cela ressemble sérieusement à "Ma voiture est trop lente, aidez-moi à la rendre plus rapide" lorsque le problème est que vous passez le plus de temps dans un embouteillage et que vous vous plaignez du trafic qui ne bouge pas. Pas un problème de réglage de voiture. Le trafic de 10 To ne dit rien sur la congestion du réseau. Regardez vos statistiques de trafic réseau sur votre carte réseau, puis réagissez en conséquence - si elles ne sont pas remplies à la vitesse qu'elles devraient être ... votre fournisseur a survendu. Aussi simple que ça.

  • Code. Il se peut que vous ayez besoin de plus de RAM (l'ordinateur est en train de passer à la RAM au lieu de le traiter) ou que le codage merdique utilise tout votre processeur à un degré qui empêche la pile TCP au niveau du noyau de réagir correctement (oui, les réponses ICMP sont si faibles). Ce serait brutal - mais c'est une autre avenue à vérifier. Il se peut également que vous surchargiez les disques en y accédant trop souvent au lieu de les mettre en cache dans la RAM, mais je n'arrive pas à voir que cela mène à des pings perdus. Tout problème ici n'est pas quelque chose qu'un administrateur peut gérer, cependant - vous devez y jeter du matériel, ou prendre un bâton et frapper le programmeur avec lui jusqu'à ce qu'il le corrige (s'il s'agit d'une erreur de niveau "stupide" qui gruge les performances - si ce n'est pas le cas, alors il est beaucoup plus difficile de réaliser des gains sérieux et il se peut que votre matériel soit plus robuste).

Il ne nécessite certainement aucun réglage des fenêtres - une fenêtre bien configurée peut offrir beaucoup plus que cela. Mes serveurs de fichiers sont régulièrement ß sur des périodes plus longues - livrez 4-6gigabit à partir d'une configuration relativement courante.

Maintenant, tous les chiffres que vous donnez ne disent rien sérieusement.

  • 10-15% de CPU est utilisé POURRAIT signifier un échange.
  • 25% de mémoire est probablement utilisé est un bon indicateur maintenant que l'échange se produit, mais cela peut toujours signifier que le processeur attend les E / S.
  • 10% -15% du réseau est utilisé signifie - absolument rien car ce n'est que VOTRE côté du réseau. Et en amont? Que se passe-t-il si le fournisseur place 20 serveurs avec 1 gigabit sur une liaison montante de 1 gigabit du rack et que cela déborde comme l'enfer?

Le dernier point est très probable - les paquets perdus en sont un bon indicateur. Et cela ne sera pas visible pour vous.

Mon conseil .... éteignez quoi que ce soit sur une machine pendant un moment, faites un test de vitesse depuis l'extérieur avec un gros fichier statique. Je parierais que vous rencontrez des embouteillages plus haut.

Tout ce que vous avez fait jusqu'à présent - maxuserport, tcpnumconnection, redémarrer le serveur, jouer avec les paramètres IIS - est totalement désactivé et ne fait rien au meilleur endroit. Frapper un marteau sur une voiture lente ne résout jamais rien, surtout si la voiture est lente car elle se trouve dans un embouteillage. Je voudrais annuler toutes les modifications et commencer à analyser le problème, pas seulement votre serveur. Je parierais sur la congestion du réseau pour le moment.

TomTom
la source
3
even the outdated 2008 R2 which you should update ASAP- Allez, TomTom, attrape-toi. 2008 R2 est toujours bien dans le support général et un LONG chemin de sortir du support étendu qui est en 2020, je crois ...
Dan
4
"R2 2008 obsolète que vous devez mettre à jour dès que possible": c'est à la fois incorrect (2008R2 n'est pas "périmé" et ne doit pas être mis à jour "simplement parce que") et n'a aucun sens dans le contexte de la réponse. Le reste n'améliore pas votre réponse car il ne fournit aucune étape utile pour identifier le problème, et encore moins le résout, il fournit simplement des conseils génériques (et légèrement sur le sujet) sur les performances.
Stéphane
En fait, c'est parce que devinez ce qui a été sérieusement changé plus tard ß la pile IP. L'évolutivité étant un point. Donc, oui, dans le contexte donné, c'est le cas. Les mises à jour devraient avoir lieu dès que possible - car devinez quoi, VOUS ne pouvez pas améliorer vos affaires au fil du temps, la plupart des entreprises le font. 2012 R2 est meilleur que 2008 R2.
TomTom
En utilisant speedtest.net, la liaison montante et la liaison descendante sont d'environ 100 Mbps.
Monkey D Luffy du
Il existe deux logiciels de dépendance pour le système d'annonces: memcached et MySQL. Il garde une trace de toutes les impressions et clique dans le memcached et met à jour MySQL toutes les 10 minutes.
Monkey D Luffy
0

Les pings sont-ils externes aux deux serveurs? Si c'est le cas, essayez le ping du serveur un au serveur deux. Si les résultats sont totalement différents de ceux du ping externe, cela montre que le problème n'est peut-être pas dû au serveur deux. En outre, consultez le moniteur de ressources pour la longueur de la file d'attente de disque pour les lecteurs et le temps actif - ses quelques informations supplémentaires qui peuvent mettre en évidence un problème.

Ross Buggins
la source
J'ai déjà essayé ça. J'ai utilisé le serveur 1 pour envoyer un ping au serveur 2 et le ping tombe toujours si je mets plus d'annonces.
Monkey D Luffy
1
La connexion entre le serveur 1 et le serveur 2, est-ce via votre propre matériel? Ou est-ce le commutateur du centre de données? J'essaie simplement de déterminer si, lorsque vous avez envoyé une requête ping, vous traversiez du matériel DC, ce qui aurait pu causer de la congestion. Avez-vous quelque chose dans IIS / Windows qui bloque dynamiquement les demandes? Pas de protection dos qui bloque les demandes légitimes? Le système, est-ce ASP.NET et la base de données est MySQL?
Ross Buggins du