lebel Posté 31 Décembre 2005 Posté 31 Décembre 2005 (modifié) Je vous soumets mon problème. J'ai un site avec un forum assez fréquenté (PunBB) sur un dédié Athlon 3000+ 512Mo Un top quand c'est calme ressemble à çà : 18:33:50 up 1 day, 22:50, 1 user, load average: 2.92, 3.33, 4.5588 processes: 82 sleeping, 5 running, 1 zombie, 0 stopped CPU states: 72.2% user, 13.6% system, 0.0% nice, 14.2% idle Mem: 496556K total, 473556K used, 23000K free, 42140K buffers Swap: 497972K total, 0K used, 497972K free, 314180K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 22236 webusers 15 0 29324 10M 6712 S 10.1 2.2 1:00 httpd 3643 webusers 15 0 29104 9752 5360 S 4.9 1.9 0:03 httpd 4393 webusers 15 0 29084 9380 5012 S 3.9 1.8 0:00 httpd 22217 webusers 15 0 29152 11M 6848 S 3.7 2.2 0:29 httpd 22229 webusers 15 0 29356 10M 6576 S 3.5 2.2 0:28 httpd 3634 webusers 15 0 29096 9988 5608 S 3.1 2.0 0:03 httpd 4012 webusers 15 0 28972 9520 5260 S 3.1 1.9 0:02 httpd 4217 webusers 15 0 29160 9516 5112 S 3.1 1.9 0:01 httpd 22244 webusers 15 0 29100 10M 6160 S 2.9 2.1 0:58 httpd 22245 webusers 15 0 29320 10M 6536 S 2.9 2.2 1:09 httpd 3561 webusers 15 0 29068 9684 5328 S 2.7 1.9 0:05 httpd 3546 webusers 15 0 29112 9744 5356 S 2.5 1.9 0:04 httpd 4023 webusers 15 0 29084 9692 5324 S 1.7 1.9 0:02 httpd 4529 mysql 17 0 13812 11M 1228 R 1.7 2.3 0:00 mysqld 22222 webusers 15 0 29488 10M 6356 S 1.5 2.2 0:57 httpd 22237 webusers 15 0 29136 10M 6328 S 0.9 2.1 0:58 httpd 3555 webusers 15 0 29100 9684 5296 S 0.9 1.9 0:04 httpd mais çà monte parfois très haut ! 89% de CPU et un load average à plus de 15 ! Il semble que cela soit MySQL qui soit le fautif. Je pense avoir besoin de quelques conseils d'optimisation pour mon my.cnf pour que ma mémoire SWAP soulage mon processeur qui prend tout dans le gueule (alors que mon serveur n'a jamais swappé en 2 ans d'utilisation). Merci pour vos conseils éclairés ! JE viens de mettre çà en place set-variable = connect_timeout=20 set-variable = wait_timeout=60 set-variable = long_query_time=10 set-variable = max_connections=100 set-variable = wait_timeout=20 set-variable = interactive_timeout=60 set-variable = key_buffer_size=50M set-variable = myisam_sort_buffer_size=50M log-slow-queries = /home/mysql-data/slow-query.log Est ce que je suis dans le vrai ? Modifié 31 Décembre 2005 par lebel
Dan Posté 31 Décembre 2005 Posté 31 Décembre 2005 Sur un mono processeur une charge restant supérieure à 1 est anormale. Donc même là c'est trop.... Difficile de dire ce qui consomme alors que tu ne nous donne le résultat du "top" que lorsque le système est "calme" (du moins selon tes critères). Je ne vois pas sur ce résultat d'utilisation anormale de ressource de la part de mysql. Mais dans le doute, tu peux lancer un "myisamchk --recover *.MYI" dans le répertoire des données mysql. Tu as peut-être une erreur dans l'un de tes index... Il semble par contre que Apache ait parfois quelques problèmes. Un process httpd qui consomme 10% de CPU peut révéler un problème de conception de tes pages. As-tu des modules spécifiques en plus de punBB ? Dan
lebel Posté 31 Décembre 2005 Auteur Posté 31 Décembre 2005 Je ne vois pas sur ce résultat d'utilisation anormale de ressource de la part de mysql. Mais dans le doute, tu peux lancer un "myisamchk --recover *.MYI" dans le répertoire des données mysql. Tu as peut-être une erreur dans l'un de tes index... On peut lancer cette commande où ? Il semble par contre que Apache ait parfois quelques problèmes. Un process httpd qui consomme 10% de CPU peut révéler un problème de conception de tes pages. As-tu des modules spécifiques en plus de punBB ? J'ai fait un test à pleine charge en fermant le forum ! Le load average tombe de façon drastique donc çà semble être lui qui soit source de problème. D'ailleurs toutes les slow query proviennent du forum.
Dan Posté 31 Décembre 2005 Posté 31 Décembre 2005 On peut lancer cette commande où ?J'ai fait un test à pleine charge en fermant le forum ! Le load average tombe de façon drastique donc çà semble être lui qui soit source de problème. D'ailleurs toutes les slow query proviennent du forum. La commande "myisamchk" fait partie des outils mysql. Il faut te mettre comme root sous putty dans le répertoire de données mysql et la lancer. Le forum c'est du mysql et du http aussi. Donc le fait de fermer le forum fait baisser la charge de ces deux applis, pas seulement celle de mysql. Tu as quelle version de mysql ? Parce qu'une version 4 permet d'utiliser un cache. C'est efficace !
lebel Posté 31 Décembre 2005 Auteur Posté 31 Décembre 2005 La commande "myisamchk" fait partie des outils mysql. Il faut te mettre comme root sous putty dans le répertoire de données mysql et la lancer. Le forum c'est du mysql et du http aussi. Donc le fait de fermer le forum fait baisser la charge de ces deux applis, pas seulement celle de mysql. Tu as quelle version de mysql ? Parce qu'une version 4 permet d'utiliser un cache. C'est efficace ! <{POST_SNAPBACK}> ouais j'ai une version 3.23 ! compliquée une MAJ de version MySQL pour un mec qui capte rien en linux ?
Dan Posté 31 Décembre 2005 Posté 31 Décembre 2005 Cela dépend de ta distribution Linux, et peut être aussi simple qu'une commande "rpm" ou "apt-get" si mySql a été installé en package.
lebel Posté 1 Janvier 2006 Auteur Posté 1 Janvier 2006 J'ai fait le myisamchk mais j'avais une erreur une fois l'opération faite. donc j'ai du faire un REPAIR TABLE pour que tout se remette en place. Est-ce un signe de problème ? J'ai une Debian de chez Sivit comme distrib
lebel Posté 1 Janvier 2006 Auteur Posté 1 Janvier 2006 12:28:54 up 2 days, 16:45, 1 user, load average: 6.05, 4.33, 2.73103 processes: 88 sleeping, 14 running, 1 zombie, 0 stopped CPU states: 86.6% user, 13.4% system, 0.0% nice, 0.0% idle Mem: 496556K total, 486704K used, 9852K free, 32436K buffers Swap: 497972K total, 55968K used, 442004K free, 243900K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 3460 webusers 17 0 29392 8056 5308 R 27.5 1.6 0:43 httpd 2779 webusers 16 0 29124 7596 5120 S 20.5 1.5 1:03 httpd 11891 mysql 16 0 70612 54M 1236 S 3.5 11.2 0:00 mysqld 11829 webusers 15 0 29084 5912 3524 S 1.7 1.1 0:00 httpd 11824 webusers 15 0 28984 6012 3740 S 1.5 1.2 0:00 httpd 11834 webusers 15 0 29076 5884 3524 S 1.5 1.1 0:01 httpd 3461 webusers 15 0 29092 7280 4832 S 1.3 1.4 0:16 httpd 4153 webusers 15 0 29044 7564 5168 S 1.3 1.5 0:40 httpd 11868 webusers 15 0 29064 5984 3632 S 1.3 1.2 0:00 httpd 3804 webusers 15 0 29116 7908 5440 S 1.1 1.5 0:45 httpd 7661 webusers 15 0 29060 7284 4872 S 1.1 1.4 0:23 httpd 10263 webusers 15 0 29084 6628 4192 S 1.1 1.3 0:08 httpd 11835 webusers 15 0 29076 6336 3972 S 1.1 1.2 0:01 httpd 11828 webusers 15 0 28876 5468 3296 S 0.9 1.1 0:00 httpd 11873 webusers 15 0 26824 2476 1756 S 0.9 0.4 0:00 httpd 5156 webusers 15 0 29216 8268 5808 S 0.7 1.6 0:29 httpd 6919 webusers 15 0 29120 7776 5308 S 0.7 1.5 0:29 httpd La grande nouveauté (en raison des nouveaux paramètres mis ds le my.cnf), c'est que çà swap un peu (mais vraiment un peu)
Dan Posté 1 Janvier 2006 Posté 1 Janvier 2006 J'ai fait le myisamchk mais j'avais une erreur une fois l'opération faite.donc j'ai du faire un REPAIR TABLE pour que tout se remette en place. Est-ce un signe de problème ? Une erreur est toujours un problème... mais si myisamchk l'a réparée c'est bon maintenant. Tu as par contre toujours beaucoup de CPU utilisé par Apache... Tu as mis quelles valeurs dans le httpd.conf ? Un peu de swap ? Je trouve que 50 MB de swap c'est beaucoup pour une bécane de 512MB. Ton process mysqld prend 54MB, c'est beaucoup pour ta config. Il faudrait réduire les paramètres de /etc/my.cnf, notamment le key_buffer_size. Ta base fait quelle taille totale, hors index ?
lebel Posté 1 Janvier 2006 Auteur Posté 1 Janvier 2006 Une erreur est toujours un problème... mais si myisamchk l'a réparée c'est bon maintenant. Tu as par contre toujours beaucoup de CPU utilisé par Apache... Tu as mis quelles valeurs dans le httpd.conf ? Un peu de swap ? Je trouve que 50 MB de swap c'est beaucoup pour une bécane de 512MB. Ton process mysqld prend 54MB, c'est beaucoup pour ta config. Il faudrait réduire les paramètres de /etc/my.cnf, notamment le key_buffer_size. Ta base fait quelle taille totale, hors index ? <{POST_SNAPBACK}> Ma base fait environ 850Mo J'ai mis le key_buffer_size à 30M au lieu de 50M; le swap est tombé 6800k Pour mon httpd.conf, voici les principales valeurs: Timeout 60 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 5 MinSpareServers 5 MaxSpareServers 10 StartServers 5 MaxClients 150 MaxRequestsPerChild 5000 Pour MySQL qqs valeurs aussi: long_query_time 10 max_connections 100 max_user_connections 0 myisam_sort_buffer_size 50M query_buffer_size 0 log_bin OFF merci encore pour ton aide précieuse parce franchement, j'en vois vraiment pas le bout ! PS : qd je fais mon top, j'ai aussi un sale msg "Unknown HZ value! (92) Assume 100" qui se met ! g fait un tcket au support de mon hébergeur à ce propos !
lebel Posté 4 Janvier 2006 Auteur Posté 4 Janvier 2006 A pleine charge, je remarque que dans mon server status j'ai des lignes avec comme Req Milliseconds required to process most recent request 1752306659 1752306605 etc ... sur une page où il n'y a pas de problème (puisque sur les autres demandes tout se passe bien) Comment je peux régler ce problème ? La charge processeur pourrait bien venir de là non ?
lebel Posté 6 Janvier 2006 Auteur Posté 6 Janvier 2006 (modifié) personne pour m'aider ? mon serveur rame lamentablement ! Et c'est bien Apache qui fait tout merdé J'ai qu'à faire un pkill-9 httpd pour m'en rendre compte Modifié 6 Janvier 2006 par lebel
Dan Posté 6 Janvier 2006 Posté 6 Janvier 2006 Il faut diminuer le MaxRequestPerChild ... 5000 c'est énorme. J'utilise une valeur entre 100 et 200 sur le serveur du HUb, sans grand changement dans les performances. Lorsqu'un process http sert une requête, il alloue de la mémoire. Et cette mémoire ne sera libérée que lorsque le process sera fini. Donc si la première requête sur 5000 demande 16Mb de mémoire, et que les autres ne demandent que quelques KB, ce process aura 16MB de RAM alloués jusqu'à la 5000 ème requête. Dan
lebel Posté 6 Janvier 2006 Auteur Posté 6 Janvier 2006 effectivement çà a diminué un peu la charge (je l'ai mis à 100) mais j'ai quand même tjs Apache qui délire totalement ! Ca peut venir d'où ? 18:51:02 up 3 days, 23:27, 1 user, load average: 14.96, 13.39, 12.8995 processes: 78 sleeping, 9 running, 8 zombie, 0 stopped CPU states: 91.0% user, 9.0% system, 0.0% nice, 0.0% idle Mem: 495900K total, 402768K used, 93132K free, 15724K buffers Swap: 497972K total, 11000K used, 486972K free, 297536K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 22582 webusers 15 0 29200 8896 4420 S 8.0 1.7 0:00 httpd 22592 webusers 15 0 29192 8772 4328 S 3.9 1.7 0:01 httpd 22590 webusers 15 0 29224 8812 4336 S 3.3 1.7 0:00 httpd 22593 webusers 15 0 29008 7984 3760 S 3.3 1.6 0:00 httpd 22587 webusers 15 0 29016 8344 4068 S 3.2 1.6 0:00 httpd 22516 webusers 15 0 29220 8804 4328 S 2.5 1.7 0:00 httpd 22591 webusers 15 0 29188 8940 4484 S 2.5 1.8 0:00 httpd 22586 webusers 15 0 29188 8788 4332 S 2.3 1.7 0:01 httpd 22517 webusers 15 0 29200 8884 4408 S 2.2 1.7 0:02 httpd 22543 webusers 15 0 29108 8664 4288 S 2.1 1.7 0:00 httpd 22402 webusers 15 0 29112 8904 4524 S 2.0 1.7 0:00 httpd 22545 webusers 15 0 29192 8800 4392 S 2.0 1.7 0:01 httpd 22403 webusers 15 0 29216 8528 4056 S 1.4 1.7 0:00 httpd 22514 webusers 15 0 29196 8784 4320 S 1.3 1.7 0:01 httpd 22584 webusers 15 0 29112 8692 4312 S 1.3 1.7 0:00 httpd 22515 webusers 15 0 29172 8864 4424 S 1.2 1.7 0:00 httpd 22588 webusers 15 0 29172 8708 4280 S 1.2 1.7 0:00 httpd
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant