Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 17h37   #1
Invité de passage
 
Homme
Inscription : février 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : février 2012
Messages : 1
Points : 0
Points : 0
Par défaut Process Mysql 100 %

bonjour,
j'ai mon application qui prend 100 % de la cpu
j'uitlise le script mysqltuner.pl pour améliorer les requetes sql
le résultat :
General recommendations:
Add skip-bdb to MySQL configuration to disable BDB
Run OPTIMIZE TABLE to defragment tables for better performance
Reduce your overall MySQL memory footprint for system stability
Enable the slow query log to troubleshoot bad queries
Temporary table size is already large - reduce result set size
Reduce your SELECT DISTINCT queries without LIMIT clauses
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
query_cache_size (> 16M)
sort_buffer_size (> 1M)
read_rnd_buffer_size (> 256K)

comment peut-on améliorer le temps de réponse sans augmenter la mémoire ?
mon my.cnf
cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
query_cache_size = 16M
tmp_table_size = 256M
max_heap_table_size = 512M
innodb_buffer_pool_size = 3G
table_cache= 512M
thread_cache_size = 10
key_buffer_size = 600M
sort_buffer_size =1M
read_rnd_buffer_size=256K
open_files_limit = 65535
max_connections = 100
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
axil76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 10h15   #2
Membre émérite
 
Avatar de mactwist69
 
Homme Adrien
Développeur .NET
Inscription : janvier 2007
Messages : 924
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 924
Points : 978
Points : 978
Normalement à l'installation tu indiques les paramètres de ta machine, MySQL va déterminer les meilleurs configurations mémoires etc...

Sans ajouter de la mémoire c'est délicat.

Après, ce que tu pourrais faire c'est:

- Utiliser des tables MyIsam plutot que InnoDB. Ces tables n'ont pas de système de clé étrangère, ce qui améliore grandement la rapidité de lecture et d'écriture.
Il faut voir si l'usage de conviens.

-Tu peux aussi voir si tu as des bons index pour tes tables (en fonction de tes requêtes.

- Tu peux amélioré aussi la performance de tes requêtes (ce qui joue énormément sur le temps de réponse)
__________________
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
mactwist69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 10h32   #3
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 667
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 667
Points : 2 675
Points : 2 675
Citation:
Envoyé par mactwist69 Voir le message
- Utiliser des tables MyIsam plutot que InnoDB. Ces tables n'ont pas de système de clé étrangère, ce qui améliore grandement la rapidité de lecture et d'écriture.
Il faut voir si l'usage de conviens.
Bonjour,

J'aimerai que vous developpiez ces deux points la (pour ma culture personnelle) :
- En quoi une fk va ralentire la lecture ?
- En quoi un lock de table engendré par l'utilisation de MyIsam lors d'un update/insert/delete va rendre les cycles de lecture / ecriture plus rapide dans un système un poil concurent ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 12h59   #4
Membre émérite
 
Avatar de mactwist69
 
Homme Adrien
Développeur .NET
Inscription : janvier 2007
Messages : 924
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 924
Points : 978
Points : 978
Je suis sur que ta culture personnelle est très bien, tu me tests c'est tout.

1) Je me suis rapidement exprimer:
- Ce n'est pas le fk qui fait que la lecture peut être plus lente.
- Ce qui n’empêche pas qu'en MyIsam la lecture peut être plus rapide, notamment à cause du fait d'index Full text, pas de possibilité de roll back ni de gestion de crash comme pour InnoDB.

2) Sur un système concurrent en effet, le système de queue peut avoir un effet néphaste... Si on concidère que un poil concurrent, tu entends pas là plus de 10-15 requêtes par secondes (qui prendrait plus de 10ms chacun)

Mais je peux me tromper.
__________________
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
mactwist69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 13h50   #5
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 667
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 667
Points : 2 675
Points : 2 675
Non pas vraiment pour le test, je n'utilise pas MySql.

Mais c'est un point qui m'interesse (la lenteur supposée de InnobDb vs MyIsam en lecture) vu que ce cas m'a déjà été posé dans mon travail.


j'avais trouvé des bench par ci par là qui se contredisaient, ex :
http://blogs.oracle.com/MySQL/entry/...am_performance
http://www.mysqlperformanceblog.com/...hmarks-part-1/

et d'autre où MyIsam était devant InnobDb (pour du MySql 5+).


Bref au fur et à mesure de mes recherches, à part l'option fullText, je n'avais pas trouvé de point positif à l'utilisation de MyIsam.

Mais des cas m'ont surement échappé et ceci des personnes qui ont de l'expérience avec MySql peuvent me l'apporter
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 14h31   #6
Membre émérite
 
Avatar de mactwist69
 
Homme Adrien
Développeur .NET
Inscription : janvier 2007
Messages : 924
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 924
Points : 978
Points : 978
J'en ai pas "la preuve", mais il se dit quand même que niveau mémoire les requêtes sur des tables InnoDB peuvent consommer jusqu'à 2 ou 3 fois plus de mémoires. (Donc dans le cas de notre amis, toujours si il n'a pas de table transactionnel, ça peut l’intéresser).

Cette différence se fait surement sur le fait qu'en InnoDB les requêtes sont transactionnels, possibilité de roll-back et avec gestion des clé étrangères (avec vérification de cohérence).

De ce point de vue, InnoDB est plus "sûr" pour l'intégrité...

Maintenant si tu dois faire une recherche sur une table qui contient des millions de lignes... MyIsam sera moins gourmand donc plus rapide. (Mais possibilité de crasher le serveur)
__________________
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
mactwist69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h36.


 
 
 
 
Partenaires

Hébergement Web