site inaccessible ou trop lent -> Rédémarrage obligatoire

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

benjiman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 254
Inscription: 9 Oct 2005

site inaccessible ou trop lent -> Rédémarrage obligatoire

Message le Ven Nov 30, 2007 17:48

Bonjour !

Je fais appel à vous car j'ai un gros problème depuis quelques temps ...
J'ai un serveur dédié (dédibox) où seul apache+Php4 fonctionnent. Il n'y a pas de mysql.

Mais depuis un certains temps c'est beaucoup trop lent !!
Au début, ca commence par un gros ralentissement, puis après, le service http est innaccessible ... et si j'attend encore un peu, là, c'est carrément tout le serveur qui innaccessible en ssh (alors qu'il ping).

J'ai environ 2 000 visiteurs uniques par jour et voici ma configuration de apache2.conf :


Timeout 100
KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

##
## Server-Pool Size Regulation (MPM specific)
##

# prefork MPM
<IfModule prefork.c>
StartServers 5
MinSpareServers 70
MaxSpareServers 300
#ServerLimit 601
MaxClients 100
MaxRequestsPerChild 0
</IfModule>

<IfModule worker.c>
StartServers 5
#ServerLimit 601
MaxClients 100
MinSpareThreads 70
MaxSpareThreads 300
ThreadsPerChild 0
MaxRequestsPerChild 4000
</IfModule>




Si vous savez comment faire... je suis vraiment mal là à savoir que le site est trop lent...
A savoir quand meme que j'ai 1GO de mémoire de RAM.

Apparemment, tout se joue sur le MaxClients...
Mais si je le met trop haut, le serveur est Out en quelques minutes... et si je le met trop bas, le site serait je suppose, trop lent.


Je remercie toutes les personnes qui auront la réponse à mon probleme...


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Ven Nov 30, 2007 17:58

Sur un kimsufi j'ai eu un soucis un peut similaire , test en changeant la valeur du MaxClients ( a ajouté si absent du apache2.conf)

Perso chez moi c'est :

MaxClients 40


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Ven Nov 30, 2007 18:07

Hello, et avec un top, ça donne quoi ?

benjiman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 254
Inscription: 9 Oct 2005

Message le Ven Nov 30, 2007 18:22

Bonjour,

Euh, maxclients à 40 c'est tout ???
Il y a quand meme 2 000 à 5 000 visiteurs par jours uniques ...
(environ 9 000 visites par jour)...

Mettre un maclients trop bas ne ralentira pas le site ? (les gens attendent leur tour ...)

Concernant le top ...
Actuellement, après un reboot vers 17h00, ca donne :
Code: Tout sélectionner
top - 18:25:00 up  2:12,  1 user,  load average: 0.81, 0.54, 1.32
Tasks: 158 total,   4 running, 154 sleeping,   0 stopped,   0 zombie
Cpu(s): 26.8% us, 23.2% sy,  0.0% ni, 47.7% id,  0.7% wa,  0.0% hi,  1.7% si
Mem:   1018456k total,   715872k used,   302584k free,    13580k buffers
Swap:  1044216k total,   380368k used,   663848k free,    64240k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                         
2596 www-data  16   0 24344  11m 2472 S  5.3  1.1   0:16.04 apache2                         
2579 www-data  15   0 24392  11m 2668 S  4.6  1.1   0:14.00 apache2                         
2652 www-data  16   0 24016  10m 1880 S  4.6  1.0   0:16.03 apache2                         
2653 www-data  16   0 24224  11m 2524 S  4.3  1.1   0:14.86 apache2                         
2571 www-data  16   0 24324  11m 2612 R  3.3  1.1   0:16.60 apache2                         
2636 www-data  15   0 24296  10m 1920 S  3.0  1.1   0:14.51 apache2                         
2635 www-data  15   0 24160  11m 2572 S  2.7  1.1   0:14.85 apache2                         
2661 www-data  15   0 24276  10m 1880 S  2.3  1.1   0:15.07 apache2                         
2619 www-data  16   0 24156  10m 2120 S  2.0  1.1   0:16.51 apache2                         
2622 www-data  15   0 24400  11m 2568 S  2.0  1.1   0:19.57 apache2                         
2578 www-data  15   0 24404  11m 2604 S  1.7  1.1   0:17.70 apache2                         
2586 www-data  15   0 24004  10m 2436 S  1.7  1.1   0:15.01 apache2                         
2659 www-data  15   0 24084  10m 1940 S  1.7  1.0   0:18.33 apache2                         
2590 www-data  16   0 24420  11m 2608 S  1.3  1.1   0:18.42 apache2                         
2601 www-data  15   0 24204  10m 2448 S  1.3  1.1   0:19.11 apache2                         
2633 www-data  16   0 24296  11m 2916 S  1.3  1.2   0:17.22 apache2                         
2595 www-data  16   0 24352  11m 2528 S  0.7  1.1   0:17.07 apache2                         
2611 www-data  15   0 24536  11m 2912 S  0.7  1.2   0:18.33 apache2                         
2616 www-data  15   0 24120  10m 2160 S  0.7  1.1   0:15.11 apache2                         
2625 www-data  15   0 24372  11m 2612 S  0.7  1.1   0:18.14 apache2                         
  710 root      10  -5     0    0    0 S  0.3  0.0   0:00.87 kjournald                       
2129 bind      25   0 30060 1556  992 S  0.3  0.2   0:00.33 named                           
2515 root      15   0 18824 1568 1156 S  0.3  0.2   0:00.24 apache2                         
2575 www-data  15   0 24412  11m 2604 S  0.3  1.1   0:16.04 apache2                         
2602 www-data  15   0 24184  11m 2756 S  0.3  1.1   0:16.98 apache2                         
2615 www-data  15   0 24452  11m 2548 S  0.3  1.1   0:13.08 apache2                         
2617 www-data  15   0 24224  10m 1940 S  0.3  1.0   0:18.40 apache2                         
2627 www-data  15   0 24320  11m 3068 S  0.3  1.2   0:16.53 apache2                         
2629 www-data  15   0 24248  11m 2912 S  0.3  1.2   0:14.69 apache2                         
2632 www-data  15   0 24144  10m 2140 S  0.3  1.1   0:15.15 apache2                         
2650 www-data  15   0 24176  10m 2524 S  0.3  1.1   0:13.41 apache2                         
3307 postfix   15   0  4676 1896 1540 S  0.3  0.2   0:00.01 trivial-rewrite



Je vous remercie fortement pour l'attention que vous portez à ce sujet.


PS: je précise qu'actuellement, le site est plutot rapide ... mais jusqu'à quand ??


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Ven Nov 30, 2007 18:31

Ton serveur swap, 380Mo en 2h de uptime... tu n'as pas un script vraiment gourmant ? une boucle infinie ? une règle htaccess qui boucle ?
Est-ce que tu peux voir qqch sur apache-status ?

benjiman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 254
Inscription: 9 Oct 2005

Message le Ven Nov 30, 2007 19:27

Bonjour,

Mon site est un jeu online ... donc oui, il y a des scripts de mises à jour très gourmantes !
En revanche, le site en lui meme reste parfaitement normal (tous les scripts "utilisateurs" ont été optimisé).
Les mises à jour également mais mettre à jour des milliers de compte... ca prend du temps !

En général, une mise à jour se fait en 10 minutes grand maximum ... (donc, boucle pendant 10 minutes :D ).

Sinon, question htaccess ... non !
Mais ce qui est bizarre, c'est que je n'ai pas touché au serveur et ce problème est venu sans précédent ! (aucune mise à jour, aucun reboot, aucun nouveau logiciel etc.)

Il y a peut-etre le nombre de visiteurs qui a augmenté un peu ...

Voila, en tout cas, vraiment, je vous remercie pour votre serieu.


Elvis
WRInaute discret
WRInaute discret
 
Messages: 114
Inscription: 20 Mai 2005

Message le Ven Nov 30, 2007 21:10

Ben tu devrais peut-être te pencher sur l'optimisation des scripts dits gourmands, si ce problème est lié à une hausse de fréquentation de ton site t'es mal barré, vu que ton objectif est probablement d'avoir plus de visiteurs ^^

Tu peux travailler les requêtes de ta base de données, les regexp et jouer sur des petits détails...

avec MySQL tu peux voir les requêtes qui mettent du temps à aboutir. Elles sont dans un fichier log sur ton serveur.
Sinon, fais en sorte que ces mises à jour ne se lancent qu'aux heures creuses, enfin si c'est possible...


MirageDemonAsh
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 418
Inscription: 12 Fév 2005

Message le Ven Nov 30, 2007 22:29

Mets à 5 :

KeepAliveTimeout 5

et :

Commente toutes les lignes de prefork et mets ça à la place :

<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 200
MaxRequestsPerChild 100
</IfModule>

Tu recharges la config apache et tu testes.

Puis donne le résultat de cette commande aux heures de pointes :

netstat -tanpu | grep apache2 | grep ESTABLISHED | grep -v grep | wc -l


http://www.linux-kheops.com/doc/redhat7 ... onfig.html

C'est apache 1 mais ça résume un peu les options prefork
Dernière édition par MirageDemonAsh le Sam Déc 01, 2007 1:52, édité 1 fois.


MirageDemonAsh
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 418
Inscription: 12 Fév 2005

Message le Ven Nov 30, 2007 22:31

fandecine :

http://www.webrankinfo.com/forums/viewtopic_63439.htm


ou bien :

http://www.lighttpd.net/

Je ne peux plus m'en passer, je bascule petit à petit tous mes sites dessus.

benjiman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 254
Inscription: 9 Oct 2005

Message le Ven Nov 30, 2007 23:29

Bonjour,

Je vous remercie pour le message très détaillé.

En revanche, une chose me fait peur :
Code: Tout sélectionner
MaxSpareServers 10

Ce n'est pas un peu faible ca ?
Que se passe t-il si 150 personnes se connectent en meme temps pour afficher une page riche en information, lors d'une mise à jour ?

En tout cas, encore une fois, je vous remercie pour toutes vos réponses.


MirageDemonAsh
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 418
Inscription: 12 Fév 2005

Message le Sam Déc 01, 2007 1:50

Je ne sais pas, pour ça que je t'ai mis un lien : http://www.webrankinfo.com/forums/viewtopic_63439.htm

De toute façon, il faut tester. Quand le trafic devient important, ya pas un réglage magique pour tous les sites. Faut faire des tests et lire la doc.

Je règle au feeling et j'ai une commande en cron qui m'envoie par mail le nombre de clients simultanés aux heures de pointes 4 à 5 fois dans la journée. Ça permet d'anticiper les ressources ou prévoir certains réglages.

Tu peux essayer ce script (c'est juste un mix d'un truc que j'ai trouvé sur http://aide.sivit.fr/ et http://forum.ovh.com/ puis j'en ai fait un truc à tout faire (ya pas tout ^^) :

Code: Tout sélectionner
#!/bin/bash
(

echo To: moi@example.com
echo From: leserveur@example.com
echo Subject: Rapport quotidien du `date +%e\ %B\ %Y` pour `hostname`

echo Rapport de `hostname`
echo Usage du disque :
echo

df -h

echo
echo Charge du serveur :
echo

uptime

echo
echo Apache Max

netstat -tanpu | grep apache | grep ESTABLISHED | grep -v grep | wc -l

echo
echo
) | mail -s Rapport-Machine-XXXX moi@example.com


Tu mets ça dans un fichier, puis tu crées une tâche planifiée crontab avec les heures de ton choix. Ça surveille à ta place :lol:

echo To: moi@example.com <= ton mail
echo From: leserveur@example.com <= le mail du serveur, tu mets ce que tu veux@ladresseduserveur

Rapport-Machine-XXXX <= le sujet du mail, tout collé, je sais plus si ça passe avec les espaces. Enfin, peu importe.

Tu nommes le fichier rapport.sh tu le mets dans /usr/local/sbin

Tu le rends exécutable : chmod +x /usr/local/sbin/rapport.sh

Tu le lances une première fois voir si il fonctionne : rapport.sh

Puis tu l'installes avec crontab : crontab -e

Et tu mets ça :

55 5,18-21 * * * /usr/local/sbin/rapport.sh 1>/dev/null 2>&1

Soit un rapport par mail tous les jours à 5 h 55 du mat / et un toutes les heures de 18 h 55 à 21 h 55

Si ya des termes que tu comprends pas, tapes-les sur Google.


MirageDemonAsh
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 418
Inscription: 12 Fév 2005

Message le Sam Déc 01, 2007 1:52

Et pour le reste, fais déjà ça, et tu verras bien :

http://www.webrankinfo.com/forums/viewt ... 904#811904

benjiman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 254
Inscription: 9 Oct 2005

Message le Sam Déc 01, 2007 2:23

Je te remercie énormément pour ton script !

Apparement, il fonctionne ...
Etant donné que le serveur est "out" aléatoirement, j'ai décidé d'envoyer le rapport toutes les heures...

J'ai bien écris ce que tu as mis dans ton post dans apache2.conf ...
On va voir ce que ca donne !!

En tout cas, merci beaucoup pour ton aide.


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Sam Déc 01, 2007 4:42

a mon avis c'est surtout free ram qu'il faut envoyer

j'ai un probleme similaire sur mon server de sauvegarde (perso)

et c'est debian etch (que je vais finir par abandonner) qui gere le swap de manière incorrecte

rog

benjiman
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 254
Inscription: 9 Oct 2005

Message le Sam Déc 01, 2007 9:36

Bonjour!

Pourrai-je avoir plus d'informations sur free ram? En quoi cela consiste-il?
Sinon, le serveur tourne sur ubuntu. Bon ok c'est presque pareil... Mais je trouve que ça tourne bien...

En tout cas vraiment merci pour toute l'aide que vous apporté.

site inaccessible ou trop lent -> Rédémarrage obligatoire

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité