IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Virtualisation Discussion :

[KVM] Gros problème de latences / performances


Sujet :

Virtualisation

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut [KVM] Gros problème de latences / performances
    Bonjour,

    Depuis plusieur semaines, nous avons des serveurs qui offrent des performances très en deça de nos attentes.

    Il sont virtualisés sous KVM.

    L'OS est Windows 2008 R2
    Certains font tourner SQL Server 2014 Express / Standard
    D'autres dont tourner IIS qui communiquent avec les bases de données
    D'autres des applications développées en .NET qui communiquement principalement avec les bases de données

    Je n'ai pas le détail du matériel.
    A priori, des machines avec 32 CPU et 256 Mo de RAM qui hébergent plusieurs VM.

    Les symptômes :
    - Si on lance une requête dans SQL Server (en local) assez lourde (lecture d'un grand nombre de lignes, calculs, etc.) qui retourne peu de lignes : temps de réponse correct. Quelques secondes de moulinage, puis restitution des lignes à l'écran immédiate.
    - Si on lance une requête dans SQL Server (en local) simple qui retourne un assez grand nombre de lignes (select * sans clause where par exemple qui ramène plus de 10 000 lignes). Charge CPU à font. Les premières lignes sont ramenées immédiatement, mais ensuite l'ensemble des lignes met plusieurs dizaines de secondes (voir plusieurs minutes) pour être chargé. Pourtant, on n'est pas ne réseau. Les disques ont une activité pour ainsi dire nulle (faut dire qu'avec 16 Go de mémoire allouée au serveur pour une base de 600 Mo, y'a pas de quoi faire des accès disque).

    Ensuite, d'un serveur à l'autre :
    - Sur un serveur de traitement, on lance par exemple un import de données. Un fichier CSV de 500 Ko contenant 3 lignes de facture par exemple. On en a pour 30 minutes. Activité disque, réseau et CPU néant (moins de 5% pour chaque) aussi bien sur le serveur de traitement que sur le serveur de base de données.
    - Sur un serveur web, on lance une requête qui retourne 10 000 lignes. Ca met plusieurs minutes à afficher la page. Idem, activité néan sur les différents serveurs.

    Ca donne l'impression d'être au guichet de La Poste avec un gars la gueule enfarinée en face... Toi t'es au taquet pour récupérer ton colis "chuis à a bourre, chuis à la bourre". Mais l'autre il est en mode "putain y me faut un café, putain y me faut un café, boulot de merde" et il traine ses savates en oubliant de rapporter le colis qu'il était parti cherché.

    On comprends pas.

    On a changé les VM de machine physique, changé d'hyperviseur, changer les switch réseau. Rien n'y fait.

    Le ballooning est désactivé sur l'ensemble des machines.
    On a déjà ajouté le flag -T8038 au démarrage du service de SQL Server.

    Quelqu'un a-t-il déjà constaté ce genre de phénomène ?
    Ce qui nous laisse perplexe, c'est surtout qu'aucune machine ne semble travailler, alors que l'application avance avec 2 de tension...

    Edit : J'ai oublié de préciser quelques tests effectués :
    - Copie d'un gros fichier d'un serveur A à un serveur B : 500 Mo/s
    - Backup FULL de SQL Server vers un serveur distant : Moins de 30 secondes pour une base de 600 Mo
    - Recalcul des stats et re-création de tous les index de la base : aucun changement
    On ne jouit bien que de ce qu’on partage.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Il y a une chose de sure, 600Mo pour une base SQLServer c'est ridiculement petit, tes temps d’exécution sont fortement anormaux.

    Est-ce que tu fais régulièrement une maintenance de ta base, genre au minimum un recalcul des index toute les nuits ?
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    On vient de se rendre compte d'un autre souci.

    Utilisation de 7z pour compresser un fichier de 900 Mo en mode "deflate".
    => 25 minutes sur le serveur, utilisation du CPU à 100%

    Copie par VPN depuis une ligne ADSL (à coup de copier/coller depuis un TSE) du fichier en local, compression en local sur un bête PC portable pas franchement moderne, puis renvoi de la version compressée à travers le VPN... 20 minutes

    On en perd notre latin !
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Effectivement.

    Là, personnellement, comme ça, j'ai pas d'autres solutions à te proposer que de faire la totale, un scan complet et approfondi d'un antivirus à jour, scan complet d'un antimalware à jour, tu peux aussi passer un anti rootkit et un coup d'adwcleanner, ça peut pas faire de mal.

    Ensuite un bon nettoyage avec CCLeanner, y compris du registre si tu te sens capable d'analyser ce qu'il va nettoyer dedans.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    On dirait un problème de saturation du stockage, en particulier l'expérience 7z avec CPU à 100%. On aurait des symptômes similaires si l'iowait explosait.

    Au niveau de l'hyperviseur, peux tu renvoyer la sortie de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sar -d
    sar -W
    sar -w
    iostat -d -x
    pendant une de ces opérations?

    Si il est possible d'installer libguestfs, pourriez vous utiliser virt-alignment-scan sur le disque virtuel portant la bdd, afin de vérifier l'alignement des partitions sur le stockage.


    De même côté invité, dans la console de performance, quelle est la longueur de queue disque sur le disque portant la base de données?

    Utilisez vous virtio? Quelle est la ligne de commande qemu-system utilisée pour ces serveurs? Quel est la solution de stockage utilisée? Les disques sont full provisionnés?

    PS: pour info MS déconseille fortement de virtualiser le stockage de SQL Server (mais pas l'instance), et à mon sens cette remarque est valable pour toutes les bases de données

Discussions similaires

  1. Gros problème de performance
    Par Syl_20 dans le forum OpenGL
    Réponses: 15
    Dernier message: 16/12/2007, 18h19
  2. GROS problèmes de performances
    Par fda dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 02/08/2007, 14h02
  3. [Tomcat] Gros problèmes de performance
    Par Tourix dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 04/06/2007, 15h58
  4. [XNA] GROS problèmes de performances
    Par kawash dans le forum XNA/Monogame
    Réponses: 12
    Dernier message: 20/02/2007, 23h03
  5. Gros problème de performance
    Par steelidol dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/11/2006, 08h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo