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

Administration MySQL Discussion :

Consommation CPU trop importante de MySQL


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur développeuse
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développeuse

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut Consommation CPU trop importante de MySQL
    Bonjour,

    Je rencontre un problème avec MySQL sur un serveur ubuntu dédié et je sollicite votre aide. Pour information, j'ai testé beaucoup de solutions proposées sur les forums francophones et anglophones sans succès. Mon problème est le suivant: Dès que je lance mon application et que j’exécute un top, je vois que la consommation de CPU dépasse les 100%. La consommation mémoire quand à elle ne dépasse pas les 5%.

    Les caractéristiques de la machine sont comme suit:
    - 16 GO de RAM
    - 250 GO de taille de disque
    - 4 CPU

    Concernant la base de données, je ne peux pas la modifier, j'ai ajouté des indexes et mes requêtes contiennent beaucoup de join. Le moteur est MyISAM. Mon application ne fait que des SELECT et le nombre moyen de lignes par table et 500 000.

    Le fichier my.cnf est comme suit:

    [client]
    port = 3306
    socket = /var/run/mysqld/mysqld.sock

    [mysqld_safe]
    socket = /var/run/mysqld/mysqld.sock
    nice = 0

    [mysqld]

    user = mysql
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    port = 3306
    basedir = /usr
    datadir = /var/lib/mysql
    tmpdir = /tmp
    lc-messages-dir = /usr/share/mysql
    skip-external-locking
    skip-innodb
    default-storage-engine = myisam

    bind-address = 127.0.0.1

    key_buffer = 10G0
    join_buffer_size = 1M
    max_allowed_packet = 1M
    thread_stack = 192K
    thread_cache_size = 50

    myisam-recover = BACKUP
    max_connections = 100
    table_cache = 1500
    thread_concurrency = 4

    query_cache_type = 1
    query_cache_limit = 2M
    query_cache_size = 2M

    table_cache = 1024
    max_heap_table_size = 290M
    max_tmp_tables = 128
    sort_buffer_size = 1M
    myisam_sort_buffer_size = 264M
    read_rnd_buffer_size = 64M
    read_buffer_size = 1M
    max_user_connections = 150
    tmp_table_size = 290M

    [mysqldump]
    quick
    quote-names
    max_allowed_packet = 16M

    [mysql]
    #no-auto-rehash # faster start of mysql but no tab completition

    [isamchk]
    key_buffer = 32M

    !includedir /etc/mysql/conf.d/
    En espérant pouvoir être aiguillée vers une éventuelle solution. Je vous remercie par avance

  2. #2
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 217
    Billets dans le blog
    16
    Par défaut
    Bonsoir kiitkaat,


    Avez-vous effectué l'EXPLAIN des requêtes susceptibles de ficher la zoubia ?

    EXPLAIN SELECT...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Candidat au Club
    Femme Profil pro
    Ingénieur développeuse
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développeuse

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir kiitkaat,


    Avez-vous effectué l'EXPLAIN des requêtes susceptibles de ficher la zoubia ?

    EXPLAIN SELECT...
    Bonjour Fsmrel,

    Tout d'abord, merci pour votre réponse.

    Alors, j'ai effectué un explain sur les deux requêtes qui demandent le plus de temps d’exécution, le résultat est le suivant:

    id select_type rows Extra
    1 simple 319845 Using where; Using temporary; Using filesort
    1 simple 1 Using where
    1 simple 3
    1 simple 238572 Using where

    id select_type rows Extra
    1 simple 362 Using where; Using temporary; Using filesort |
    1 simple 1 Using where
    1 simple 2 Using where

    Et lorsque j’exécute un "SHOW PROCESSLIST;", j'ai ce message pour mes deux fameuses requêtes "Copying to tmp table on disk ".

    Merci par avance

  4. #4
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 217
    Billets dans le blog
    16
    Par défaut
    Bonjour kiitkaat,


    Comme l’a fait Tavar, pourriez-vous joindre la requête (ou les requêtes) en cause, ainsi qu’une photo de l’EXPLAIN.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par kiitkaat Voir le message
    Et lorsque j’exécute un "SHOW PROCESSLIST;", j'ai ce message pour mes deux fameuses requêtes "Copying to tmp table on disk ")
    Cela signifie que comme il n'y a plus assez de RAM pour exécuter intégralement la requête en mémoire, il décharge sur le disque....

    MySQL est assez mauvais en matière de performances.

    Quel est le volume de la base ?

    La solution brutale consiste à augmenter la RAM, avec au pire, RAM serveur = taille de la base.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Candidat au Club
    Femme Profil pro
    Ingénieur développeuse
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développeuse

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut
    Bonsoir et désolée de répondre tard.

    Alors ayant été dans l'urgence, j'ai décidé de remanier mon application afin de pouvoir gagner du temps d'exécution et d'être dans les temps sur mon projet. J'ai également migré de MySQL vers MariaDB. Avec MariaDB j’atteins 13% contre 5 au maximum auparavant, d'utilisation mémoire et même si j'atteins 100% d'utilisation CPU, le serveur ne me lâche pas.

    Ma question est la suivante: Comment je peux faire afin de permettre à MariaDB d'utiliser plus de mémoire?

    Encore un grand merci pour vos réponses

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,

    regardez du côté des buffer pool (innoDb si vous l'utilisez).

    Sinon, un peu de lecture sur internet vous permettra de commencer à comprendre qui fait quoi .. :https://mariadb.com/kb/en/mariadb/do...on-and-tuning/

Discussions similaires

  1. Problème base de données MySQL trop importante
    Par isabelle-44 dans le forum WordPress
    Réponses: 20
    Dernier message: 27/06/2015, 11h32
  2. Réponses: 0
    Dernier message: 21/06/2015, 19h07
  3. Charge CPU trop importante
    Par drazx dans le forum GTK+ avec C & C++
    Réponses: 9
    Dernier message: 26/03/2009, 09h58
  4. Consommation CPU
    Par Kenshiro1980 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 09/09/2005, 14h56
  5. [Apache] - URL Rewriting et consommation CPU
    Par Acti dans le forum Apache
    Réponses: 3
    Dernier message: 23/08/2005, 09h53

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