OVH Cloud OVH Cloud

Prb de charge.

3 réponses
Avatar
Mikado
Salut à tous,

J'ai un service internet composé d'un frontal avec IIS et d'un serveur SQL
pour les données. Le serveur IIS est en moyenne à 15% d'utilisation du CPU,
le serveur SQL Server à 60%. La qualité de service est sacrément dégradé.

En regardant via le compteur de performance je vois que la courbe du nombre
de transactions/s pour ma base et celle de la charge CPU se suivent. J'ai
mis deux autres serveurs en place (IIS+SqlServer) pour essayer de diminuer
la charge (j'ai redirigé environ 10 à 20% du traffic vers ceux-ci). Bien que
la charge augmente sur les nouveaux serveurs je ne constate aucun changement
sur le premier, je reste aux alentours de 60%.

- Existe t'il un moyen pour déterminer d'où vient la diminution des
ressources (qui n'a lieu qu'à certain moments de la journée) ?
- Pourrait il y a voir un goulot d'étranglement avec IIS ou l'application
ASP qui y tourne ?

Merci pour votre aide...

3 réponses

Avatar
jbongran
Mikado wrote:
Salut à tous,

J'ai un service internet composé d'un frontal avec IIS et d'un
serveur SQL pour les données. Le serveur IIS est en moyenne à 15%
d'utilisation du CPU, le serveur SQL Server à 60%. La qualité de
service est sacrément dégradé.
En regardant via le compteur de performance je vois que la courbe du
nombre de transactions/s pour ma base et celle de la charge CPU se
suivent. J'ai mis deux autres serveurs en place (IIS+SqlServer) pour
essayer de diminuer la charge (j'ai redirigé environ 10 à 20% du
traffic vers ceux-ci). Bien que la charge augmente sur les nouveaux
serveurs je ne constate aucun changement sur le premier, je reste aux
alentours de 60%.
- Existe t'il un moyen pour déterminer d'où vient la diminution des
ressources (qui n'a lieu qu'à certain moments de la journée) ?
- Pourrait il y a voir un goulot d'étranglement avec IIS ou
l'application ASP qui y tourne ?

Merci pour votre aide...



Verifier que les objets de connexion et de recordset soient bien fermés et
détruits.
Vérifier sur la machine IIS que le regroupement des connexions soient bien
en place pour le pilote utilisé (outils d'administration, source odbc...).
Essayer si il n'en est pas fait usage par ailleurs, de désactiver l'état de
session
<@EnableSessionState = False %> ou directement dans la MMC de IIS.
Enfin, lorsque cela se produit, voir à l'aide du manager sql combien il y a
de sessions et éventuellemnt les requêtes en attentes, mais là c'est du SQL
et je ne connait pas à fond.
Avatar
Mikado
Bonjour,

Verifier que les objets de connexion et de recordset soient bien fermés et
détruits.



C'est le cas

Vérifier sur la machine IIS que le regroupement des connexions soient bien
en place pour le pilote utilisé (outils d'administration, source odbc...).



J'utlise le provider OleDb. Vaut il mieux utiliser le pilot ODBC et pooler
les connexions ? De mémoire OleDb est bien plus rapide.

Essayer si il n'en est pas fait usage par ailleurs, de désactiver l'état
de session
<@EnableSessionState = False %> ou directement dans la MMC de IIS.



Non malheureusement j'en ai besoin

Enfin, lorsque cela se produit, voir à l'aide du manager sql combien il y
a de sessions et éventuellemnt les requêtes en attentes, mais là c'est du
SQL et je ne connait pas à fond.



%Cpu : 60% en moyenne
Nombre de requêtes par lots/seconde : 90,336 en moyenne (la courbe se
superpose presque à CPU)
Connexions/seconde : 0,001 en moyenne
Connexions utilisateur : 22 en moyenne
Taux de présence dans le cache : 78% en moyenne
Mémoire totale du serveur : 635512Ko en moyenne
Mémoire du serveur cible : 645297Ko en moyenne

Le nombre de connexion et de connexions/seconde est ridicule. La mémoire du
serveur cible est supérieur à la mémoire totale du serveur, la quantité de
RAM est donc suffisante. Le taux de présence dans le cache est correcte. Le
nombre de requêtes par lots/seconde est très élevé (j'ai qu'une seule base
utilisateur). La connexion 100Mbits est utilisé à 0,54% (le poids des
requêtes et de leur réponse est ridicule). Je me demande si c'est tout
simplement pas la machine qui est sous dimensionné. Qu'en pensez-vous ???

Jérôme
Avatar
Pierre Goiffon
jbongran wrote:
J'ai un service internet composé d'un frontal avec IIS et d'un
serveur SQL pour les données. Le serveur IIS est en moyenne à 15%
d'utilisation du CPU, le serveur SQL Server à 60%. La qualité de
service est sacrément dégradé.
En regardant via le compteur de performance je vois que la courbe du
nombre de transactions/s pour ma base et celle de la charge CPU se
suivent. J'ai mis deux autres serveurs en place (IIS+SqlServer) pour
essayer de diminuer la charge (j'ai redirigé environ 10 à 20% du
traffic vers ceux-ci). Bien que la charge augmente sur les nouveaux
serveurs je ne constate aucun changement sur le premier, je reste aux
alentours de 60%.
- Existe t'il un moyen pour déterminer d'où vient la diminution des
ressources (qui n'a lieu qu'à certain moments de la journée) ?
- Pourrait il y a voir un goulot d'étranglement avec IIS ou
l'application ASP qui y tourne ?



Enfin, lorsque cela se produit, voir à l'aide du manager sql combien il y a
de sessions et éventuellemnt les requêtes en attentes, mais là c'est du SQL
et je ne connait pas à fond.



Oui, c'est ce que je conseillerai : avec le générateur de profil voir
les requètes dont le coût est le plus élevé, et analyser leur plan
d'exécution.