Le Forum Non Officiel de la DEDIBOX
Vous n'êtes pas identifié.
Salut à tous, je gére une dedi j'y hébérge un site + forum (taille de la base 550 mb) et le serveur MySQL me prend toutes les ressources du CPU, du coup le site il rame c'est trés génant, d'ailleurs il n'y a pas que le site meme pas SSH et Webmin sa rame aussi et quand je le stop tout remarche bien mais une fois le serveur SQL relancé il suffit de quelques secondes pour que le CPU revienne a 100 ![]()
Via PHPMYADMIN j'ai réparé, optimisé et analysé toutes les tables dont la le site rame moins mais le CPU toujours a 100% comment fait SVP ![]()
Merci a vous !!
Hors ligne
tu dois avoir des requetes codés avec les pieds.
créé des index sur les champs souvent utilisé si c'est pas déjà fait.
et tu as une commande qui te log les requetes qui prennent du temps (slow query ou un truc du genre), je te laisse faire une recherche sur le site de mysql.
Hors ligne
merci, comment pourrai je savoir si mes tables sont indéxées ou pas ? et comment le faire ?
Hors ligne
Hors ligne
merci pach je vais checker tot ça !
Hors ligne
Salut,
J'ai semble t'il le même problème, aussi j'évite d'ouvrir un nouveau topic. Quand je fais un TOP, MySQL plafonne entre 60 et 100%. Pour arrêter le service, il a bien fallu 2 minutes. Et quand je l'ai relancé, il m'a dit "Checking for crashed MySQL tables in the background."
J'ai pas eu besoin de regarder du coté des logs, mais simplement de mes tables. J'en ai une (smf_log_errors provenant du forum SMF) qui plafonne à 1,3 Go avec 4 751 370 enregistrements).
Est-ce que le "Checking for crashed MySQL tables in the background" peut expliquer ce taux CPU très haut ou est-ce qu'il faut tout simplement se résoudre à la mise en cause de cette table "à dégraisser" ?
Hors ligne
MySQL devient instable quand on a plus de 1 Go de données.
Hors ligne
Bon, je l'ai soulagé plus que de raison, je l'ai même updaté/upgradé (apt & co), j'ai affiné un réglage dans php.ini concernant le garbage collector qui semblait poser pb avec SMF sous Debian, rebooté, prié, bu 1 café, me suis mouché... mais rien n'y a fait, mysqld flirt tj avec les 90-95 % :'(
Exemple :
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2051 mysql 15 0 120m 40m 4868 S 99.7 4.0 17:34.33 mysqld
Dernière modification par chr!x (2008-01-07 22:08:39)
Hors ligne
Un petit coup de "SHOW PROCESSLIST" dans mysql te répond quoi ?
Dernière modification par Mogui (2008-01-07 22:11:40)
Hors ligne
Bien figures toi que je suis très vexé, car il me veut pas accéder à cette demande ![]()
sd-xxxx:~# mysqladmin -p processlist
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
Là, chui mal ![]()
Dernière modification par chr!x (2008-01-07 22:38:17)
Hors ligne
T'as tapé ton password root ?
Perso, pour ce genre de req, je passerais plutot par phpmyadmin (qui liste proprement en tableaux).
Hors ligne
Jviens de m'en sortir avec ça. En plus, j'avais pas d'user root, mais un autre nom... Pfff !
Donc voici ce que ca donne :
sd-xxxx:~# mysqladmin -u chrix -p processlist Enter password: +-----+-------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-----+-------+-----------+----+---------+------+-------+------------------+ | 203 | chrix | localhost | | Query | 0 | | show processlist | +-----+-------+-----------+----+---------+------+-------+------------------+
Bref, rien de pertinant... Et dans la foulée, nouveau TOP:
sd-xxxx:~# top top - 23:03:59 up 1:20, 1 user, load average: 3.00, 4.03, 5.51 Tasks: 127 total, 1 running, 126 sleeping, 0 stopped, 0 zombie Cpu(s): 55.1% us, 44.9% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 1017980k total, 859972k used, 158008k free, 52108k buffers Swap: 1044216k total, 0k used, 1044216k free, 452932k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7105 mysql 18 0 118m 37m 4776 S 96.7 3.7 4:50.16 mysqld
Sinon j'ai essayé ca :
sd-xxxx:~# mysqladmin -u chrix -p status Enter password: Uptime: 643 Threads: 3 Questions: 7726 Slow queries: 80 Opens: 1024 Flush tables: 1 Open tables: 64 Queries per second avg: 12.016
Et PS m'informe de ceci :
sd-xxxx:~# ps -p 7105 -F UID PID PPID C SZ RSS PSR STIME TTY TIME CMD mysql 7105 7068 74 30711 43540 0 22:57 ? 00:18:52 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock sd-xxxx:~# ps -p 7068 -F UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 7068 1 0 983 1344 0 22:57 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe
Normal que ca soit MySQL_Safe qui ai initialisé MySQL ?
... Sinon, où chercher, je ne sais ...
Dernière modification par chr!x (2008-01-07 23:37:22)
Hors ligne
A vot bon coeur M'sieurs-Dames, j'ai le MySQL qui chauffe du chapeau, pitié pour lui ![]()
Hors ligne
chr!x a écrit:
A vot bon coeur M'sieurs-Dames, j'ai le MySQL qui chauffe du chapeau, pitié pour lui
T'es le premier dans la liste des topics, pas la peine de upper ![]()
Hors ligne
Réglé, et merci Mogui pour m'avoir mis sur la piste.
Pour la petite histoire, j'ai pu via PhpMyAdmin me connecter en tant que root et lister les process. J'ai pu remarquer que MySQL croulait sous des requêtes multiples. Après avoir killé les process, ils venenaient aussi sec. J'ai donc regardé du coté du site exploitant la BD incriminé. Il s'agit d'un blog tournant sous DotClear 1.2.5, et qui en dépis d'un filtre Baysien antispam mal trainé, se faisait assaillir de trackback vers des sites porno. Plus de 50 nouvelles entrées à la minute. Je sais pas depuis quand ce petit manège durait, mais j'avais une table (dc_comment) de près de 932 Mo...
J'ai donc fermé les trackbacks & commentaires de ce blog, purgé la table, et mysqld est revenu dans les limites du raisonnable. Ma dédibox tourne désormais à 3% d'occupation CPU.
Dernière modification par chr!x (2008-01-09 16:46:48)
Hors ligne