Nombre élevé de requêtes lentes

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] Nombre élevé de requêtes lentes

    Bonsoir

    Je suis devant un problème que je n'arrive pas à solutionner et qui me prend la tête :
    La base de mon site a été déplacée par OVH vers un serveur de bases de données différent "suite aux nombre élevé de requêtes lentes que vous effectuez"

    J'ai donc tenté de résoudre le problème.

    J'ai supprimé le composant K2
    J'ai désactivé les éléments finder de l'outil de recherche et d'indexation.
    J'en ai profité pour alléger ma base (suppressions des tables bak, suppressions des anciennes tables, vidage des stats, etc.)

    Malheureusement, OVH questionné me répond : "Votre base de données génèrent toujours les mêmes requêtes : http://ovh.to/JuVSeSF"

    Je ne vois pas ce que je peux faire car je ne comprends pas d'où provient le problème.

    Si quelqu'un pouvait m'aider ou au moins me mettre sur la voie, cela me rendrait un grand service.

    D'avance merci !

    JM Fouquer

  • #2
    Re : Nombre élevé de requêtes lentes

    Bonjour,

    c'est toujours difficile d'analyser ce genre de problème. De base, soit le serveur SQL est trop lent ou ne répond pas correctement dans les temps, soit les requêtes sont mal écrites.

    En terme de requêtes, les CMS ont tendances a générer des jointures multiples complexes (on voit beaucoup de LEFT Join dans la liste que tu fournis) et effectivement ça peut être coûteux, puisque le nombre de lignes retournés peut si les requêtes sont mal écrites monter vertigineusement. Là je ne trouve pas que ce soit le cas 150000 lignes retournées ça fait bien sûr beaucoup, mais 9 secondes pour les traiter me semble un peu gros !

    Professionnellement je m’occupe en tant que DBA (-occasionnel) SQL Server de base de données dont certaines ont des tables de plus de 70 millions de lignes, les jointures génèrent des volumes impressionnants de données à traiter pour le SQL, heureusement que je n'ai pas les mêmes ratios de temps de traitement, j'y passerai des semaines ...

    Est ce que c'est de la faute à Joomla ou à OVH difficile à dire (même si je pense que OVH ne fait pas ce qu'il faut pour ces serveurs SQL. Je sais j'ai mon site chez eux)

    Qu'est ce que tu peux faire pour améliorer les choses ? peut être essayer de diminuer le nombre de lignes traitées, en cause sur ce coup les tables (régulièrement) : users, categories, content et rating
    donc évidemment users et content tu peux pas changer le nombre de lignes, peut être que déjà diminuer le nombre de catégories gérées (combien en as tu ?), as tu vraiment besoin du système de notation (rating) ?

    Cordialement
    Il y a 10 sortes de gens. Ceux qui savent compter en binaire et ceux qui ne savent pas ...

    Commentaire


    • #3
      Re : Nombre élevé de requêtes lentes

      Bonjour

      Merci d'avoir pris le temps de me répondre !
      Je vais suivre ton conseil et aller voir du côté des tables categories et rating pour commencer.
      J'ai 434 categories ce qui ne me semble pas énorme. De plus ce n'est guère facile à diminuer de façon significative.
      Rating je ne vois pas à quoi ça correspond.
      Je vais regarder

      Merci encore
      Bien cordialement

      JMF



      Envoyé par PieceOfCake Voir le message
      Bonjour,

      c'est toujours difficile d'analyser ce genre de problème. De base, soit le serveur SQL est trop lent ou ne répond pas correctement dans les temps, soit les requêtes sont mal écrites.

      En terme de requêtes, les CMS ont tendances a générer des jointures multiples complexes (on voit beaucoup de LEFT Join dans la liste que tu fournis) et effectivement ça peut être coûteux, puisque le nombre de lignes retournés peut si les requêtes sont mal écrites monter vertigineusement. Là je ne trouve pas que ce soit le cas 150000 lignes retournées ça fait bien sûr beaucoup, mais 9 secondes pour les traiter me semble un peu gros !

      Professionnellement je m’occupe en tant que DBA (-occasionnel) SQL Server de base de données dont certaines ont des tables de plus de 70 millions de lignes, les jointures génèrent des volumes impressionnants de données à traiter pour le SQL, heureusement que je n'ai pas les mêmes ratios de temps de traitement, j'y passerai des semaines ...

      Est ce que c'est de la faute à Joomla ou à OVH difficile à dire (même si je pense que OVH ne fait pas ce qu'il faut pour ces serveurs SQL. Je sais j'ai mon site chez eux)

      Qu'est ce que tu peux faire pour améliorer les choses ? peut être essayer de diminuer le nombre de lignes traitées, en cause sur ce coup les tables (régulièrement) : users, categories, content et rating
      donc évidemment users et content tu peux pas changer le nombre de lignes, peut être que déjà diminuer le nombre de catégories gérées (combien en as tu ?), as tu vraiment besoin du système de notation (rating) ?

      Cordialement

      Commentaire


      • #4
        Re : Nombre élevé de requêtes lentes

        Je ne sais pas ce qu'en pense les autres, mais moi je trouve que 434 c'est énorme (surtout vu ce qui se passe dans les requêtes).

        Je pense que tu utilises peut être mal le système de catégories et que tu aurais peut être intérêt à en reclasser en tags, c'est possible d'avoir une url vers ton site ?
        Il y a 10 sortes de gens. Ceux qui savent compter en binaire et ceux qui ne savent pas ...

        Commentaire


        • #5
          Re : Nombre élevé de requêtes lentes

          Je dois pouvoir diminuer le nombre de catégories (j'ai commencé à y réfléchir suite à ton courriel) mais je crains que ce ne soit pas significatif.
          Je n'utilise pas de tags
          Voici l'url : http://lafederation.org/

          JMF

          Envoyé par PieceOfCake Voir le message
          Je ne sais pas ce qu'en pense les autres, mais moi je trouve que 434 c'est énorme (surtout vu ce qui se passe dans les requêtes).

          Je pense que tu utilises peut être mal le système de catégories et que tu aurais peut être intérêt à en reclasser en tags, c'est possible d'avoir une url vers ton site ?

          Commentaire


          • #6
            Re : Nombre élevé de requêtes lentes

            Je ne veux pas rentrer trop dans des détails techniques, mais en gros quand on requête sur des bases de données, il y a deux solutions techniques : les recherches par index (on récupère le minimum d'enregistrements correspondant aux index utilisés et on trie pour finir) et le scan qui est tout bêtement un parcours de table (on lit tout et on élimine ce dont on a pas besoin).

            Visiblement vu les temps de réponse, on est dans la deuxième catégorie, scan de table et forcément ça prend du temps. Que ce genre de requêtes soient mal optimisées dans Joomla est probable, vu ce qui t'arrive, mais tu n'as pas beaucoup de choix :
            1) diminuer le nombre d'éléments de comparaison (en l'occurrence là, les catégories)
            2) prendre une option SQL plus puissante chez OVH (ça coûte un peu d'argent)
            3) tester une migration en v 3.3 en priant pour que cela plus efficace (de mémoire les catégories étaient un peu récente en 2.5 et inconnues en 1.5), au fait quelle version exacte de Joomla as tu ?
            4) écrire en surcharge de modules des requêtes optimisées

            une chose peut être à faire pour éliminer la problématique OVH, serait de remonter ta base de données de production sur un serveur local sur lequel tu maîtrises l'environnement et la charge et tester en direct via phpMySQL les fameuses requêtes longues signalées par OVH, ce serait même peut être la première chose à faire histoire d'être sûr de l'origine du problème (peut être en profiter pour tester une montée de version en local ?)
            Il y a 10 sortes de gens. Ceux qui savent compter en binaire et ceux qui ne savent pas ...

            Commentaire


            • #7
              Re : Nombre élevé de requêtes lentes

              Bonjour

              J'ai mis du temps à répondre mais pas à chercher une solution.

              J'ai allégé la BDD au maximum sans amélioration notable sur les requêtes

              Je pense donc que le problème est ailleurs.

              Depuis peu je rencontre des erreurs au lancement de la page d'accueil.
              Cela semble venir du composant "fil d'actualité".
              Pas de changement malgré la dernière mise à jour (Joomla 2.5.22 pour répondre à ta question)
              Je l'ai désactivé.
              Je vais voir ce que ça donner.

              Par contre ta remarque sur les BDD me donne à penser que j'ai sans doute fait une erreur en désactivant le module de recherche rapide et l'indexation. Ton avis ?

              Bien cordialement

              JM FOUQUER


              Envoyé par PieceOfCake Voir le message
              Je ne veux pas rentrer trop dans des détails techniques, mais en gros quand on requête sur des bases de données, il y a deux solutions techniques : les recherches par index (on récupère le minimum d'enregistrements correspondant aux index utilisés et on trie pour finir) et le scan qui est tout bêtement un parcours de table (on lit tout et on élimine ce dont on a pas besoin).

              Visiblement vu les temps de réponse, on est dans la deuxième catégorie, scan de table et forcément ça prend du temps. Que ce genre de requêtes soient mal optimisées dans Joomla est probable, vu ce qui t'arrive, mais tu n'as pas beaucoup de choix :
              1) diminuer le nombre d'éléments de comparaison (en l'occurrence là, les catégories)
              2) prendre une option SQL plus puissante chez OVH (ça coûte un peu d'argent)
              3) tester une migration en v 3.3 en priant pour que cela plus efficace (de mémoire les catégories étaient un peu récente en 2.5 et inconnues en 1.5), au fait quelle version exacte de Joomla as tu ?
              4) écrire en surcharge de modules des requêtes optimisées

              une chose peut être à faire pour éliminer la problématique OVH, serait de remonter ta base de données de production sur un serveur local sur lequel tu maîtrises l'environnement et la charge et tester en direct via phpMySQL les fameuses requêtes longues signalées par OVH, ce serait même peut être la première chose à faire histoire d'être sûr de l'origine du problème (peut être en profiter pour tester une montée de version en local ?)

              Commentaire


              • #8
                Re : Nombre élevé de requêtes lentes

                Bonjour,

                la recherche rapide et l'indexation peuvent provoquer des pics de charge sur ton serveur (lors de l'indexation en particulier), mais je ne pense pas que cela joue beaucoup sur les requêtes en base de données.

                As tu pris le temps d'essayer sur une version locale pour vérifier le comportement de ton site sorti de chez ton hébergeur.

                Je pense vraiment que mesurer les impacts d'un passage en 3.3 pourrais t'aider mais aurais forcément un coupe en travail important

                Cordialement
                Il y a 10 sortes de gens. Ceux qui savent compter en binaire et ceux qui ne savent pas ...

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X