Surcharge mysql

WRInaute passionné
top - 12:33:17 up 1:37, 1 user, load average: 11.41, 11.94, 12.29
Tasks: 292 total, 2 running, 290 sleeping, 0 stopped, 0 zombie
Cpu0 : 62.0% us, 21.0% sy, 0.0% ni, 8.0% id, 8.3% wa, 0.0% hi, 0.7% si
Cpu1 : 75.6% us, 16.5% sy, 0.0% ni, 5.6% id, 1.7% wa, 0.3% hi, 0.3% si
Mem: 4149272k total, 2022868k used, 2126404k free, 49652k buffers
Swap: 522104k total, 0k used, 522104k free, 1384508k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1296 mysql 15 0 962m 187m 2820 S 99.9 4.6 128:36.90 mysqld
8140 www-data 16 0 16392 5624 3224 S 1.0 0.1 0:00.99 apache
8163 www-data 15 0 16368 5580 3204 S 1.0 0.1 0:01.24 apache
7985 www-data 15 0 16596 5472 2900 S 0.7 0.1 0:01.65 apache
8042 www-data 15 0 16400 5616 3208 S 0.7 0.1 0:01.17 apache
8078 www-data 15 0 16460 5644 3176 S 0.7 0.1 0:01.14 apache
....
Comment résoudre ce problème qui commence sérieusement à me gonfler ?
mysql pompe tout mon cpu dès qu'il y a un peu de monde sur mon site.
Il n'y a aucune grosse requête lourde.
Je vérifie toutes mes requetes dépassant 2 secondes et il n'y en a pas des masses.

Aux heures de pointes, il y a près de 300 requêtes/secondes

Le cache mysql n'en utilise que 20... (peu de requetes identiques qui reviennent)

Que faire dans ce cas ?


PS : sur le serveur précédent, il y avait plusieurs processus mysql et il n'y avait aucun problème de CPU, c'était la RAM qui faisait défaut.
Edit : et le serveur était moins puissant
 
WRInaute passionné
sur ce serveur, il n'y a QUE MySQL qui tourne ?? ou bien y a t'il apache également?

EDIT

pardon, je n'avais pas vu les lignes de Apache....

Dans cas, je préconise toujours de séparer sur deux serveurs distinct le web et le SQL.
 
WRInaute discret
Il m'est arrivé exactement la même chose il y a une semaine. le CPU tournait a 60% pour mysql. J'ai cru à un hack. En fait c'était une explosion des visiteurs sur plusieurs sites. En mettant du cache sur les modules ajax, mon processeur est redescendu bien bas.

Peut etre ça pourra t'aider.
 
WRInaute passionné
Mysql 4.0.26, debian, sur les deux serveurs.

(oui je sais, version qui se fait vieille)

Le traffic est important oui mais il était important également sur l'autre serveur. L'autre serveur n'avait qu'un seul CPU.
La seule différence (hormis la puissance), est qu'il y avait plusieurs processus mysql.

Du cache, je ne peux quasi pas en mettre.


Est-ce que passer à mysql 5 et toutes les tables en innodb arrangerait les choses ?

(j'hésite même à prendre Mysql 5 Entreprise...)
 
WRInaute passionné
Oui, mais depuis j'ai tenté de l'améliorer mais rien à faire...

Ce qui est étrange, c'est que le processus mysql arrive à 99,9% alors que le traffic n'est même pas à la moitié de son pic.
Il n'y a aucune lenteur, aucun probleme à ce moment-ci (même si la charge reste assez élevée; actuellement, elle est de 5)

Lorsque le pic est atteint, il y a quelques lenteurs mais surtout des erreurs de sockets mysql qui apparaissent et la charge du serveur grimpe.
 
WRInaute occasionnel
Je vérifie toutes mes requetes dépassant 2 secondes et il n'y en a pas des masses.

Aux heures de pointes, il y a près de 300 requêtes/secondes

Le cache mysql n'en utilise que 20... (peu de requetes identiques qui reviennent)

Que faire dans ce cas ?

Je suis hors sujet, mais je commence a peine avec les dédié comment avez vous eu ces stats
 
Discussions similaires
Haut