Question

Quelle quantité de trafic un serveur Web peut-il gérer ?Quelle est la meilleure façon de voir si nous sommes au-delà de cela ?

J'ai une application ASP.Net qui compte quelques centaines d'utilisateurs.Certains aspects de celui-ci sont assez gourmands en processeur, mais jusqu'à présent, nous nous en sommes bien sortis avec un seul serveur pour exécuter à la fois SqlServer et le site.Il exécute Windows Server 2003, 3,4 GHz avec 3,5 Go de RAM.

Mais dernièrement, j'ai commencé à remarquer des ralentissements à différents moments et je me demandais quelle était la meilleure façon de déterminer si le serveur était surchargé par l'utilisation de l'application ou si je devais faire quelque chose pour réparer l'application (je ne le fais pas). je veux vraiment passer beaucoup de temps à rechercher de petites optimisations si j'attends trop de la boîte).

Était-ce utile?

La solution

Ce dont vous avez besoin, c'est d'informations sur Planification des capacités..

La planification de la capacité est le processus de planification de la croissance et de prévision des périodes d'utilisation de pointe afin de répondre aux exigences de capacité du système et des applications.Cela implique des tests de performances approfondis pour établir l'utilisation des ressources de l'application et le débit des transactions sous charge.Tout d'abord, vous mesurez le nombre de visiteurs que le site reçoit actuellement et la demande que chaque utilisateur place sur le serveur, puis vous calculez les ressources informatiques (CPU, RAM, espace disque et bande passante réseau) nécessaires à la prise en charge actuelle et future. niveaux d'utilisation.

Autres conseils

Si vous avez accès à certains outils de profilage (tels que ceux de l'édition Team Suite de Visual Studio), vous pouvez essayer de configurer un serveur de test et d'exécuter des requêtes synthétiques sur celui-ci et voir si une partie spécifique du code prend trop de temps. courir.Vous devriez probablement vérifier certains graphiques d'utilisation du processeur et de la mémoire au fil du temps avant de faire cela, pour voir si cela peut même être le cas.(Un nombre similaire à la "moyenne de charge" UNIX pourrait être une mesure utile, je ne sais pas si Windows a quelque chose de similaire.Fondamentalement, le nombre moyen de threads qui souhaitent du temps CPU pour chaque tranche de temps.)

Vérifiez également l'évidence, à savoir que vous ne manquez pas de bande passante.

Mesurer, mesurer, mesurer.Rico Mariani dit toujours cela, et il a raison.

Mesurez le besoin/sec, la RAM, le CPU, les sessions, etc.

Vous pouvez proposer une stratégie de mise en cache (mise en cache des sorties, mise en cache des données, mise en cache des dépendances, etc.)

Découvrez également comment fonctionne votre serveur SQL...les index sont un bon point de départ mais ne sont pas la seule chose à examiner.

Sur ce matériel, une application .NET devrait être capable de traiter environ 200 à 400 requêtes par seconde.Si vous n'avez que quelques centaines d'utilisateurs, je doute que vous voyiez ne serait-ce que 2 requêtes par seconde, donc je pense que vous avez beaucoup de capacité sur cette boîte, même avec le serveur SQL en cours d'exécution.

Sans connaître tous les détails, je dirais Non, vous ne constaterez aucune amélioration des performances en ajoutant des serveurs.

D'ailleurs, si vous n'utilisez pas le Cache de sortie, je commencerais par là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top