Serveur dédié tres lent!

WRInaute discret
Bonjour !

J'ai pris un Kimsufi pour mon site (qui tournait avant sous mutu 1&1)... mais apres avoir configuré Apache2 pour qu'il puisse accepter un maximum de clients, voila que tres souvent, le site ne "repond plus"...
En fait, charge un bout de page, puis s'arrete et si je recharge cette page en plein chargement, alors, la, je dois attendre au moins une trentaine voire une quarantaine de secondes avant de voire la page !
Ce qui est effrayant, c'est que le site me dit que la page a été généré en 0.5 secondes !
J'en conclue que ce n'est pas un probleme de mémoire ou autre, mais quoi?
Je ne sais pas !
Si pendant ce meme long chargement, je vais vers mon "server-status", la page s'ouvre tres tres facilement !

Mon site utilise énormement la librairie GD2 (pour pas dire tout le temps !!), est-ce pour cela que le site est si lent ?
Je suis actuellement à environ 600 visiteurs par jours alors que lorsque j'étais à environ 400 il y a 1 mois, je n'ai pas eu ce probleme avec le KimSufi...

Est-ce un probleme sinon de routage de la part de OVH ?

Ce probleme se pose pas seulement en France, mais dans les autres pays.

Sinon...
Voici quelques élements important concernant le serveur ...

Real Time Monitoring
Informations distribution Distribution : Debian 3.1
Kernel : 2.6.18.1-xxxx-grs-ipv4-32
[ dernière version 2.4.33 ]
Date : 2 SMP Fri Nov 3 23:04:19 CET 2006
Informations RTM Version RTM : 0.8.8

Utilisation du Serveur Charge CPU : 0 %
Charge RAM : 71 %
Charge SWAP : 0 %
Utilisation disque dur Utilisation(s) pour [ / ] : 41 %
Utilisation(s) pour [ /home ] : 1 %

Processus du serveur
Serveur démarré depuis : 5 heure(s) 16 seconde(s)

Charge moyenne ( loadavg1 ) : 0.37
Charge moyenne ( loadavg2 ) : 0.09
Charge moyenne ( loadavg3 ) : 0.07
Processus actif(s) ( loadactive ) : 1
Processus démarré(s) ( loadup ) : 136


Sinon, pour le TOP,


Voila, qu'est ce que vous en pensez ?
J'ai réalisé une optimisation des tables MYSQL ... ca a fait quelque chose de mieux, mais c'est toujours pas ca!

Je vous remercie pour votre lecture!
 
WRInaute discret
bah, du coté d'apache, rien de special ni du coté des erreurs ni des logs purs...
Quel autre log serait interressant ?

-edit: oui, j'ai mls a jour le noyau du serveur, donc j'ai du le rebooter...
 
WRInaute discret
Une chose un peu bizarre dans auth.log.0


Nov 23 06:24:12 myserv CRON[23432]: (pam_unix) session closed for user root
Nov 23 06:25:01 myserv CRON[31287]: (pam_unix) session opened for user root by (uid=0)
Nov 23 06:25:01 myserv CRON[4128]: (pam_unix) session opened for user root by (uid=0)
Nov 23 06:25:01 myserv su[21922]: + ??? root:nobody
Nov 23 06:25:01 myserv su[21922]: (pam_unix) session opened for user nobody by (uid=0)
Nov 23 06:25:11 myserv CRON[31287]: (pam_unix) session closed for user root

Et ca... sur plusieurs pages !
 
WRInaute discret
Bah... ca parait peut-etre plus rapide sur le coup, mais rapidement, le probleme revient.
J'ai également baissé le nombre de MaxSpareServers...
Je suis passé de 200 à 25 ...
Mais bon...
Ca va un tout petit mieux, mais pas vraiment...
Maintenant, je suis on dirait que je suis sur un mutu de chez free (ca marche mais, faut pas trop pousser :lol: )
 
WRInaute occasionnel
Recopie ici le début du fichier apache2.conf (jusqu'à la ligne "User www-data") en supprimant les commentaires.
 
WRInaute discret
Voila :

ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile /var/run/apache2.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 20
MaxClients 250
MaxRequestsPerChild 0
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 230
MinSpareThreads 5
MaxSpareThreads 45
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 100
MaxThreadsPerChild 30
MaxRequestsPerChild 0
AcceptMutex fcntl
</IfModule>

User www-data
Group www-data
 
WRInaute passionné
MaxClients 250 8O

avec 256Mo sur le kimsufit, en considérant qu'un processus apache pése au moins 10Mo (avec php) cela te permet un MaxClient de 25 tout au plus!!

Tu frais mieux de revenir à la config apache d'origine de OVH cela résoudrait ton problème. :wink:
 
WRInaute discret
Je viens de repasser en Maxclients =25...
Mais le probleme est le meme !
Et c'est parfois vachement embettant car le haut de la page se charge ... puis apres, plus rien !
Il faut attendre énormement de temps pour que la fin du site arrive ...
Si en meme temps je veux allez sur une autre page du site ayant besoin de mysql, ca ne se charge meme pas !
Par contre, les pages n'ayant pas besoin de mysql se chargent tres rapidement.
Je me demande si le probleme ne viendrait pas plutot de mysql...
Comment faire pour résoudre ce probleme ??
 
WRInaute occasionnel
essaye de baisser ton KeepAlive (même si 15 est une durée tout à fait raisonnable...)
[edit: oublie ça, 15 c'est très bien]

sinon, niveau load average, tout est bon, donc ça vient déja pas d'une tache qui tourne et qui pompe les ressources de la machine.

tu peux peut-être utiliser un système de cache sur tes pages, pour moins solliciter MySQL ?
Vérifie aussi les indexs des tables, si ça se trouve t'as oublié de les transférer (ça a l'air bête mais ça m'est arrivé. oui, je suis surement bête aussi)

sinon.... hmm, peut-être pourrait-on jeter un oeil au server-status ?

essaye de donner une valeur à MaxRequestsPerChild (genre 100), ça le forcera peut-être à plus jouer sur les childs, dans ton top on n'en voit qu'un ou deux en haut, et les autres en idle, on dirait qu'il n'y en a pas beaucoup qui bossent

(désolé, je suis pas admin systeme, donc je te dis tout ce qui me passe par la tête, à toi de faire ton tri)


edit:
Par contre, les pages n'ayant pas besoin de mysql se chargent tres rapidement.
alors regarde du côté du cache si c'est possible (tu stockes tes pages en .html, tes objets serialized, ou les résultats de tes requetes, selon le cas)

si t'as envie de mettre les mains dans le cambouis niveau serveur, je te conseille memcached, qui te permet de créer une "pool" de ram, dans laquelle tu peux stocker ce que tu veux... un peu long à mettre en place, mais les gains de perfs sont souvent assez violents...)
http://en.wikipedia.org/wiki/Memcached

sinon, avant ça, il faut peut-être tuner ton serveur MySQL pour qu'il colle aux sollicitations d'apache. Mais là on dépasse clairement mon domaine de compétences... donc je vais me taire :D
 
WRInaute passionné
GD par définition bouffe énormément de ressources machines puisque c'est du graphique

Vois ce que donne les ressources Mysql

un dédié en général, il en faut plutôt au moins deux, un pour apache, l'autre pour MySQL

des fois en terme de cache, on a des bons résultats en utlisant des librairies d'optimisation php genre zend engine / ion cube ou alors aussi en faisant tourne apache en reverse proxy.
 
WRInaute discret
AHHH, voila WRI !!
(comment ca se fait d'ailleurs que WRI soit si indisponible ?)
Sinon, j'ai en effet réduit de moitié l'utilisation de GD2... et pour le moment, ca m'a l'air beaucoup mieux...
Sinon, j'aurais une question,
Suis-je obligé de rester à 25 pour "MaxClients" ?
Car la, on arrive vite à saturation !
Hier à 19 heures, Server-status me disait que tous les slots étaient occupés ....
Assez embetant car on devait attendre quelques secondes avant que le site ne répond !
Passées 19 heures, l'affichage était quasi-immediat (avec 1 ou 2 slot libre)
 
WRInaute discret
Rebalance un TOP quand plus rien n'est accessible sur ton serveur (hormis le ssh évidement).

Car si le TOP reste aussi bon que celui que tu nous a montré, c'est tout simplement la connexion de ton hébergeur qui est ultra naze et qui balance la moitié des paquets à la poubelle.
 
Discussions similaires
Haut