salimbo Posté 12 Février 2008 Posté 12 Février 2008 Bonjour à tous, Je possède un site hébergé sur une dedibox. J'en assure moi meme le maitien et l'administration. J'ai un trafic qui augmente, environ 50 connecté permanent simultané et des gros soucis de lenteurs. Malheureusement, je ne sais pas de quel coté cherché ... Ci dessous un extrait de la commande top pour vous montrer mon probleme: top - 15:05:27 up 2 days, 14:12, 1 user, load average: 21.14, 25.63, 23.96Tasks: 134 total, 6 running, 128 sleeping, 0 stopped, 0 zombie Cpu(s): 90.0% us, 10.0% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 1018456k total, 752612k used, 265844k free, 26856k buffers Swap: 1044216k total, 17300k used, 1026916k free, 325144k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2260 mysql 15 0 140m 52m 2856 S 13.5 5.3 379:32.17 mysqld 6531 www-data 15 0 22040 7928 3128 S 5.8 0.8 0:00.23 apache2 3755 www-data 15 0 22376 8356 3140 S 5.5 0.8 0:05.48 apache2 31365 www-data 15 0 22232 8148 3160 S 5.2 0.8 0:13.97 apache2 851 www-data 15 0 22400 8512 3272 S 5.2 0.8 0:12.51 apache2 3750 www-data 15 0 22132 8032 3152 S 5.2 0.8 0:06.50 apache2 4646 www-data 15 0 22164 8080 3076 S 5.2 0.8 0:03.32 apache2 5981 www-data 15 0 22268 8160 3100 S 5.2 0.8 0:00.85 apache2 3145 www-data 15 0 22132 8076 3152 S 4.8 0.8 0:07.52 apache2 4648 www-data 15 0 22152 8040 3156 S 4.8 0.8 0:04.46 apache2 5969 www-data 15 0 22032 7904 3052 S 4.8 0.8 0:02.13 apache2 3418 www-data 16 0 21960 7780 2984 S 4.2 0.8 0:14.29 apache2 5460 www-data 15 0 22028 7936 3076 S 3.9 0.8 0:02.41 apache2 2967 www-data 16 0 22060 7972 3072 S 2.6 0.8 0:06.34 apache2 4358 www-data 15 0 21996 7876 3044 S 2.3 0.8 0:04.56 apache2 30473 www-data 15 0 22268 8392 3284 S 1.9 0.8 0:17.13 apache2 3416 www-data 15 0 22008 7980 3132 S 1.9 0.8 0:05.46 apache2 1553 www-data 15 0 22156 8140 3144 S 1.6 0.8 0:08.22 apache2 3710 www-data 15 0 22048 8040 3152 S 1.6 0.8 0:04.94 apache2 4359 www-data 16 0 22276 8236 3152 S 1.6 0.8 0:04.67 apache2 4536 www-data 15 0 22156 8064 3152 S 1.6 0.8 0:03.12 apache2 853 www-data 15 0 22000 7996 3156 S 1.3 0.8 0:10.80 apache2 2867 www-data 15 0 22004 7984 3140 S 1.3 0.8 0:08.63 apache2 4929 www-data 15 0 22128 8036 3096 S 1.3 0.8 0:02.24 apache2 5455 www-data 15 0 22008 7984 3136 S 1.3 0.8 0:02.22 apache2 28707 www-data 16 0 22064 8044 3148 S 1.0 0.8 0:23.76 apache2 6205 www-data 15 0 22128 7912 3060 S 1.0 0.8 0:01.06 apache2 31791 www-data 15 0 22292 8388 3284 S 0.6 0.8 0:14.12 apache2 2691 www-data 15 0 22012 7928 3076 S 0.6 0.8 0:11.65 apache2 2987 www-data 15 0 22040 8024 3160 S 0.6 0.8 0:05.21 apache2 4532 www-data 15 0 22184 8128 3160 S 0.6 0.8 0:03.93 apache2 4534 www-data 17 0 22284 8360 3264 S 0.3 0.8 0:05.24 apache2 1 root 15 0 1568 464 444 S 0.0 0.0 0:02.19 init 2 root 34 19 0 0 0 R 0.0 0.0 0:00.00 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:00.16 khelper 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread 7 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0 8 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod 62 root 16 0 0 0 0 S 0.0 0.0 0:02.92 pdflush 63 root 15 0 0 0 0 S 0.0 0.0 0:03.77 pdflush Comme on peut le voir, le CPU est utilisé à 90% ....? Quelqu'un pourrait m'aider svp ? Merci d'avance SB
Dan Posté 12 Février 2008 Posté 12 Février 2008 C'est surtout parce que ton serveur commence à swapper parce que tu lances trop de processus en même temps :!: Essaie de réduire le nombre de serveurs apache, et d'augmenter le MaxKeepAliveRequests Dan
salimbo Posté 12 Février 2008 Auteur Posté 12 Février 2008 (modifié) Merci Dan pour ta réponse, Le nombre de serveurs apache=> MaxClients = 200 ??? Concernant le MaxKeepAliveRequests, il est à 100. Tu mettrais combien ? Merci d'avance, Salim Modifié 12 Février 2008 par salimbo
jcaron Posté 12 Février 2008 Posté 12 Février 2008 C'est surtout parce que ton serveur commence à swapper parce que tu lances trop de processus en même temps :!: Essaie de réduire le nombre de serveurs apache, et d'augmenter le MaxKeepAliveRequests Effectivement elle swappe un peu (mais 17 Mo vs 1 Go de RAM c'est pas beaucoup, il faudrait voir la quantité de swap in/out), mais clairement le plus gros problème c'est qu'elle sature le CPU, nettement plus que le fait qu'elle swappe. Et ce qui bouffe c'est essentiellement apache (et un peu mysql quand même), donc ça veut dire qu'il y a des scripts qui sont un peu trop gourmands. Il y a de l'optimisation à faire, et réduire le nombre de serveurs apache ne va pas changer grand chose (à part réduire un chouïa les context-switches et augmenter beaucoup la latence avant qu'apache ne commence à traiter la requête). Il faudrait savoir ce qui tourne comme appli (un truc standard genre CMS ou forum, ou des applis maison), avoir une idée des pages/scripts les plus souvent invoqués, avoir quelques sorties de server-status. Après si c'est du php comme c'est certainement le cas je donne ma langue au chat, je ne sais même pas s'il y a des outils de profiling qui vont avec cette chose :-( Jacques.
Dan Posté 12 Février 2008 Posté 12 Février 2008 Lire 17MB dans le swap prend grosso-modo une seconde selon la rapidité des disques, et je pense que sur un dedibox cela doit-être du bas de gamme... alors que lire ce volume de données en mémoire prend quelques micro-secondes. Donc pour moi, et avec le peu d'infos qu'on a, c'est tout de même une piste qui démontre que le serveur manque de mémoire. J'ai l'habitude des serveurs avec zéro swap Il a effectivement un process mysql qui "bouffe" ... mais comme tu le dis, il faudrait savoir ce qu'il tourne et éventuellement activer le cache mysql s'il ne l'est pas déjà et permettre un second thread, vu qu'il est en single CPU.
salimbo Posté 13 Février 2008 Auteur Posté 13 Février 2008 Merci à tous les 2 pour vos réponses. Pour ce qui est des scripts, ce sont effectivement des scripts maison (site de rencontres entierement fait par moi-même). Si je comprends bien, je dois optimiser mes scripts ??? Pour ce qui est de MySQL, comment faire pour activer le cache et pour permettre un second thread ? Merci pour vos réponses, Salim
Kioob Posté 18 Février 2008 Posté 18 Février 2008 Hello, si j'en crois ton "top" la machine ne manque pas de mémoire : 250Mo libres et 350Mo de caches, sur 1Go c'est pas si mal. Cpu(s): 90.0% us, 10.0% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% si Aucun soucis niveau disque également 0.0% wa... A moins que tu ais un kernel qui date du siècle dernier ? Par contre comme le souligne Dan, sur une dédibox le matos est de piètre qualité : c'est un processeur au rabais, et ça ne m'étonne guère qu'il sature. Perso je m'orienterais surtout vers cette piste : Apache/PHP bouffent pas mal, et il faudrait savoir pourquoi. Déjà utilises tu un cache d'opcode pour PHP : eAccelerator ou APC par exemple ? Sans faire de miracle, ça peut bien aider. Coté rewriting : je suis déjà tombé sur des sites avec plusieurs centaines (sic) de règles de rewriting dans un fichier .htaccess à la racine du site. Mine de rien ça veut dire que pour chaque fichier (html, php, images, css, js, etc) Apache se coltine ces centaines d'expressions régulières... Je ne sais pas si c'est ton cas, mais si c'est le cas : il faut structurer tout ça ; d'autant plus que ces règles ont rarement besoin d'être à la racine du site. Séparer le tout par dossier, est nettement plus efficace. Coté Apache également, as tu des modules consommateurs du genre mod_gzip installés ? Pour ce qui est de MySQL, une bonne piste pour débuter est la page "Statut du serveur" sur la page d'accueil de phpMyAdmin. Pas mal de conseils y sont donnés. Bon courage
Franci Posté 22 Février 2008 Posté 22 Février 2008 En optimisant ton script ca devrait aller beaucoup plus vite, mais une Dedibox c'est limite quand même pourquoi ne pas prendre un serveur dédié plus puissant tout simplement ?
salimbo Posté 22 Février 2008 Auteur Posté 22 Février 2008 et bien fait, le rapport qualité prix de la dedibox est quand meme vraiment interessant ... Je vais voir coté script PHP et activation du cache MySQL... Merci
Dan Posté 22 Février 2008 Posté 22 Février 2008 et bien fait, le rapport qualité prix de la dedibox est quand meme vraiment interessant ... Intéressant ? Je n'oserais pas l'affirmer. Mais comme le prix est "plancher" la qualité est à l'avenant.
Franci Posté 22 Février 2008 Posté 22 Février 2008 salimbo, dans les serveurs bas de gamme il y a le kimsufi qui a certes seulement 256 mo de ram (mais 10 euros de moins aussi) mais qui reste tout à fait correct pour ton type de site.
salimbo Posté 26 Février 2008 Auteur Posté 26 Février 2008 (modifié) Rebonjour à tous, Je viens finalement de terminer la migration de mon site vers un OVH "SuperPlan 2008". Il me semble qu'il y a une grosse améliration quand aux stats... Cdpendant, que pensez vous de la commande "top" que je viens de réaliser ? top - 19:24:47 up 21:00, 1 user, load average: 2.71, 2.45, 2.36Tasks: 186 total, 3 running, 182 sleeping, 0 stopped, 1 zombieCpu(s): 62.2% us, 17.3% sy, 0.0% ni, 19.8% id, 0.3% wa, 0.2% hi, 0.2% siMem: 1013272k total, 891700k used, 121572k free, 53300k buffersSwap: 1044208k total, 180k used, 1044028k free, 521064k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3725 mysql 20 0 61572 23m 4648 S 55 2.4 91:20.66 mysqld26089 nobody 20 0 26224 2932 1412 S 5 0.3 0:00.72 httpd29923 2001 20 0 0 0 0 Z 2 0.0 0:00.06 php <defunct>29930 2001 20 0 52248 13m 4356 R 2 1.3 0:00.06 php 3926 root 20 0 29008 2040 1484 S 1 0.2 0:36.86 collectd17335 nobody 20 0 26332 3020 1448 S 1 0.3 0:00.10 httpd25277 nobody 20 0 26276 2956 1440 S 1 0.3 0:00.06 httpd29057 root 20 0 10632 1384 956 R 1 0.1 0:00.08 top 1 root 20 0 2572 576 488 S 0 0.1 0:00.98 init 2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd 3 root RT -5 0 0 0 S 0 0.0 0:00.66 migration/0 4 root 15 -5 0 0 0 S 0 0.0 0:00.06 ksoftirqd/0 5 root RT -5 0 0 0 S 0 0.0 0:00.70 migration/1 6 root 15 -5 0 0 0 S 0 0.0 0:00.10 ksoftirqd/1 7 root 15 -5 0 0 0 S 0 0.0 0:02.46 events/0 8 root 15 -5 0 0 0 S 0 0.0 0:02.88 events/1 9 root 15 -5 0 0 0 S 0 0.0 0:00.00 khelper Cela vous semble ti'l normal de consommer autant de cpu ? Pourquoi le processus "MySQL" est actif depuis 91:20.66 (est-ce bien comme cela qu'il faut le lire ..?)...? J'ai actuellement une soixantaine de personnes connectés ... Merci d'avance ! Modifié 26 Février 2008 par salimbo
Kioob Posté 26 Février 2008 Posté 26 Février 2008 Malheureusement si les requetes MySQL sont mal fichues, oui, cela peut vite grimper.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant