2 votes

Faible utilisation du CPU sur IIS sans contention des ressources

J'ai une application ASP.NET qui tourne sur IIS7.5 avec .NET4. À certains moments spécifiques, je reçois tellement de demandes de la part des clients (environ 10000 en deux minutes) et cela prend environ 20 minutes jusqu'à ce qu'elles soient toutes traitées. Je suis confus, pourquoi l'utilisation du CPU ne dépasse pas 20% pendant cette période. J'ai pensé à la liste suivante de raisons.

  1. Utilisation de la base de données : Ma base de données est petite (environ 40 Mo) et l'utilisation de la mémoire de mon serveur est inférieure à 60%, donc le taux de cache de la base de données est de 100%.
  2. Appel de service externe : Il n'y a rien de tel dans mon service.
  3. Utilisation de verrous : Je n'ai utilisé ni verrous de base de données ni sémaphores dans mon service.
  4. Nombre faible de demandes en cours d'exécution simultanément : Le moniteur de performance montre que toutes les demandes entrantes passent à l'état d'exécution et la file d'attente d'attente est vide à ce moment-là.

Quelles sont les autres raisons potentielles pour une utilisation faible du CPU dans un tel système?

1voto

Abouzar Nouri Points 31

Enfin, j'ai trouvé une solution à ce problème. J'ai configuré mon serveur comme un jardin web (augmenté le nombre de processus de travail à 5), et l'utilisation du processeur a augmenté à 47%. Je ne suis toujours pas sûr pourquoi, mais je suis presque certain que le nombre élevé de requêtes à la base de données consomme des ressources limitées à un processus et augmenter le nombre de processus de travail peut résoudre ce problème.

MISE À JOUR

J'ai enfin trouvé la raison! Dans la configuration de ServiceBehavior de mon service, j'avais InstanceContextMode.Single alors que la valeur par défaut de ConcurrencyMode est également Single. J'ai changé cette dernière en multiple et tout va bien maintenant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X