salimbo Posté 14 Septembre 2007 Posté 14 Septembre 2007 Bonjour à tous, J'ai un gros souci sur mon serveur depuis qu'il apparait en meilleur position sur google ... J'ai en fait le processus mysqld qui consomme environ 85% du cpu, hébergé sur une dedibox. Voici un extrait du top: top - 12:48:23 up 107 days, 23:10, 1 user, load average: 6.12, 7.14, 7.42Tasks: 212 total, 5 running, 207 sleeping, 0 stopped, 0 zombieCpu(s): 73.4% us, 26.6% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% siMem: 1018456k total, 814096k used, 204360k free, 157312k buffersSwap: 1044216k total, 512452k used, 531764k free, 425536k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3254 mysql 15 0 123m 38m 4400 S 84.6 3.9 596:29.36 mysqld 5004 www-data 15 0 21832 7700 3036 S 4.0 0.8 0:03.99 apache2 3525 www-data 16 0 22088 8164 3264 S 3.7 0.8 0:08.89 apache2 617 www-data 16 0 22100 8420 3468 S 1.0 0.8 0:22.17 apache2 5419 www-data 15 0 21816 7696 3040 S 1.0 0.8 0:01.27 apache2 4697 www-data 15 0 21844 7820 3136 S 0.7 0.8 0:04.13 apache2 5408 www-data 16 0 21832 7724 3064 S 0.7 0.8 0:01.50 apache2 5577 www-data 15 0 21824 7680 3040 S 0.7 0.8 0:00.36 apache2 5608 www-data 15 0 21936 7720 3036 S 0.7 0.8 0:00.54 apache2 5633 root 15 0 2332 1196 856 R 0.7 0.1 0:00.24 top 4701 www-data 15 0 21844 7812 3128 S 0.3 0.8 0:02.97 apache2 5183 www-data 15 0 21816 7588 3020 S 0.3 0.7 0:02.76 apache2 5415 www-data 15 0 22192 8732 3692 S 0.3 0.9 0:01.81 apache2 1 root 15 0 1564 472 444 S 0.0 0.0 0:28.91 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/0 3 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 events/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:07.65 khelper Avez vous une idée d'ou cela puisse venir ? Probleme requete ? Probleme script ? Comment faire pour identifier ce qui pose probleme ? Merci à tous de votre aide Salim
Dan Posté 14 Septembre 2007 Posté 14 Septembre 2007 Ce n'est pas tellement le process mysql qui pompe, c'est surtout que tu utilises 500MB de swap et de ce fait mysql utilise la mémoire virtuelle (sur disque) au lieu de la mémoire physique (en RAM). Cela signifie donc que ton serveur n'a pas assez de mémoire... ou que tu tournes trop de tâches. Essaie de diminuer le nombre de process ... Dan
salimbo Posté 15 Septembre 2007 Auteur Posté 15 Septembre 2007 (modifié) Merci Dan pour ta réponse, Est-il possible d'augmenter la mémoire swap de mon serveur sans tout résintaller ? Comment faire pour diminuer le nombre de process ? Par avance, Merci ;-) PS: je n'ai pas eu de notification par email, c'est pour cela que j'ai tardé à répondre, je ne viens de voir ton post que maintenant ... Modifié 15 Septembre 2007 par salimbo
Dan Posté 16 Septembre 2007 Posté 16 Septembre 2007 Augmenter le swap ne te servira à rien. C'est justement l'utilisation de celui-ci qui ralentit le serveur, et au plus tu l'utilises, au plus le serveur sera lent. Tu peux regarder du côté d'Apache, éviter de lancer trop de process par défaut (MinSpareServers et MaxSpareServers), augmenter le MaxKeepAliveRequests, le MaxRequestPerChild et éventuellement le MaxClients. Mais en toute logique, si tu n'as pas édité ces valeurs elles devraient être à peu de choses près correctes. Il faut bien avouer qu'une Dedibox a ses limites (comme un Kimsufi chez OVH) et ne supporte pas les grosses charges. Cela se présente lorsque tu as combien de visiteurs simultanément ?
salimbo Posté 16 Septembre 2007 Auteur Posté 16 Septembre 2007 (modifié) Ok Dan, bien compris pour la mem swap... Le problème, c'est que cela se produit lorsque j'ai une vingtaine de personne sur le site simulatanément ... C'est, à mon avis pas normal... Je pense que cela doit peut etre venir de ma base qui ne doit pas etre optimisé, non ? J'ai activer le logging des slow-query, et il est vrai que j'en ai pas mal dedans.. mais lorsque que je fais un explain du log slow-query, cela ne de me donne rien du tout, aucun index proposé pour aucune table.... Sais tu comment faire pour augmenter la taille du buffer mysql en mémoire, ou comment dumper l'éxécution des slow-query ? Merci par avance^Dan, Salim Modifié 16 Septembre 2007 par salimbo
Dan Posté 17 Septembre 2007 Posté 17 Septembre 2007 Sais tu comment faire pour augmenter la taille du buffer mysql en mémoire, ou comment dumper l'éxécution des slow-query ? Quelle version de mysql tournes-tu ? Il faut au moins mysql4 pour utiliser le cache. Et dans ce cas c'est au niveau du fichier my.cnf (dans /etc ou /etc/mysql/ selon les distributions Linux) Tu dois y trouver une directive query_cache_size suivie d'une valeur, mais ce n'est pas la seule valeur à modifier. Que veux-tu dire par "dumper l'exécution des slow-query" ?
salimbo Posté 17 Septembre 2007 Auteur Posté 17 Septembre 2007 (modifié) Dan, Je suis en Mysql 5.0.22 Concernant le "dump de slow-query", j'ai lu quelque part que l'on pouvait améliorer leur exécution en faisant un "dump", mais je t'avoue que j'ai pas trop bien compris ... Je ne pourrais pas etre plus clair. Sinon, je pense que je devrais optimisé ma base et mes requetes en utilisant des index et en évitant les "LIMIT". Parallement, je vais essayé d'augmenter la taille des buffers. Qu'en penses-tu ? Sais tu comment faire pour les buffers ? Merci d'avance PS: La notif par email ne fonctionne pas chez moi... en tout cas, pour ce qui est de ton forum, c'est hyper rapide !!!! Modifié 17 Septembre 2007 par salimbo
Joe Le Mort Posté 20 Septembre 2007 Posté 20 Septembre 2007 @ salimbo : je suis actuellement en dedibox aussi, et je rencontre le meme probleme. Par contre je n'ai pas 20 mais plutot 200 connectés simultanément. Tes pages sont elles cachées ?
Dan Posté 20 Septembre 2007 Posté 20 Septembre 2007 C'est dans le fichier de configuration de mysql (my.cnf) qu'il faut changer les paramètres tels que le nombre maxi de connexions simultanées, la taille des caches, etc... Fais une recherche avec "locate my.cnf" pour trouver ce fichier sur ton serveur.
salimbo Posté 20 Septembre 2007 Auteur Posté 20 Septembre 2007 Merci Dan, je jette un oeil de suite ! Pour ce qui est de "cacher les pages", faut il utiliser des scripts tel que Smarty ? Avez vous d'autres scripts de mise en cache à me conseiller ? Merci davance, Salim
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant