Aller au contenu

Grosse lenteur sur mon serveur dédié


salimbo

Sujets conseillés

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.96

Tasks: 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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é par salimbo
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 ? :P

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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.36
Tasks: 186 total, 3 running, 182 sleeping, 0 stopped, 1 zombie
Cpu(s): 62.2% us, 17.3% sy, 0.0% ni, 19.8% id, 0.3% wa, 0.2% hi, 0.2% si
Mem: 1013272k total, 891700k used, 121572k free, 53300k buffers
Swap: 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 mysqld
26089 nobody 20 0 26224 2932 1412 S 5 0.3 0:00.72 httpd
29923 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 collectd
17335 nobody 20 0 26332 3020 1448 S 1 0.3 0:00.10 httpd
25277 nobody 20 0 26276 2956 1440 S 1 0.3 0:00.06 httpd
29057 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é par salimbo
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...