IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Apache 2 se lance (fork ?) en boucle


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut Apache 2 se lance (fork ?) en boucle
    Bonjour,

    J'ai un petit problème avec apache2 qui a décidé de se lancer en boucle ce soir ...

    Voici un ps -ef et un top quand apache2 est start ou restart (/etc/init.d/apache2 start)
    http://img685.imageshack.us/img685/4435/apacheb.jpg
    http://img85.imageshack.us/img85/525/apache4.jpg

    ça mets évidemment à genoux mon petit serveur ..
    Voici la même sans apache2 (on sait jamais)
    http://img101.imageshack.us/img101/7379/topclear.jpg

    Que se passe t'il ? il est minuit passé je doute qu'il y ait des millions de visiteurs sur nos sites ...
    J'ai tenté de ulimit -u 20 mais ça rends tout les sous processus d'apache2 zombie (defunct) et provoque l'arrêt total d'apache au final
    (toutefois le ulimit -u 50 à sauvé mon serveur !)
    De plus je n'ai que très peu touché à la configuration qui m'a été fournis avec le serveur dédié, j'ai simplement ajouté l'utilisater apache (www-data) au groupe plesk (psacln).
    Mon serveur tourne sous "Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8..." avec plesk 9.3.0 comme interface de gestion de serveur.
    Mon /etc/apache2/httpd.conf est .. vide

    Quelqu'un a t'il déjà vu cela ?
    Où dois je commencer à regarder pour tenter de voir ce qu'il ne va pas ?

    Merci d'avance et bonne soirée !

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    /etc/apache2/httpd.conf est vide mais pas /etc/apache2/apache2.conf qui est en fait le fichier de conf utilisé par ton serveur, je pense. Dans tous les cas, dans /etc/apache2, cherche le fichier qui contient les directives MaxClients ou ce genre de chose et donne nous alors son contenu.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Bonsoir,
    Merci pour votre réponse !

    J'ai vu ça ce matin , httpd.conf obsolète , j'ai donc modifié en urgence apache2.conf et le problème semble réglé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    AVANT : 
     
    Timeout 30
    KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 3
    <IfModule mpm_prefork_module>
    StartServers       2
    MinSpareServers    3
    MaxSpareServers    10
    MaxClients        250
    MaxRequestsPerChild   10000
    </IfModule>
    <IfModule mpm_worker_module>
    StartServers       10
    MaxClients        250
    MinSpareThreads    10
    MaxSpareThreads    40
        ThreadsPerChild      25
        MaxRequestsPerChild   5
    </IfModule>
    ---------------------------------------------------
    Apres :
    Timeout 10
    KeepAlive Off
    MaxKeepAliveRequests 100
    KeepAliveTimeout 3
     
    <IfModule mpm_prefork_module>
    StartServers       1
    MinSpareServers    2
    MaxSpareServers    5
    MaxClients       40
    MaxRequestsPerChild   1000
    </IfModule>
     
    <IfModule mpm_worker_module>
    StartServers       1
    MaxClients        40
    MinSpareThreads    2
    MaxSpareThreads    10
        ThreadsPerChild      15
        MaxRequestsPerChild   5
    </IfModule>

    Toutefois je l'ai fait à l'aveuglette, n'existe t'il pas d'outil ou de tables de correspondance permettant d'ajuster ces valeurs en fonctions des ressources de mon système et du trafic attendu ?

    (256 Mo de ram , 10 mb/s, une seule et unique page de 300 ko consultée en pic 3 fois par seconde)

    Merci d'avance !

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    A ma connaissance, il n'y a pas de tables toutes faites, cela s'ajuste par l'expérience en faisant des tests de charge du serveur.

    Après, avec un serveur à 256 Mo de RAM, on ne peut pas s'attendre à des miracles. C'est effectivement nécessaire d'ajuster la valeur du MaxClients. Si le serveur ne renvoie qu'une page HTML sans image ou autres fichiers à côté, désactiver le keep-alive me semble aussi être une bonne idée. Je pense que c'est d'ailleurs ce dernier paramètre qui résout les choses.

    Mettre StartServers à 1 ne me semble pas idéal, la valeur par défaut (10) me semble plus adaptée. 1 est beaucoup trop bas : il y a fort à parier qu'Apache aura un jour à traiter plus d'une requête en parallèle. Tu pourrais noter une petite baisse de performance à cause du coût nécessaire à la création d'un processus fils. Remets 10.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Bonjour, merci beaucoup pour le conseil j'ai appliqué la modif !
    J'ai une seule page php , provoquant une requête mysql toutes les 30 secondes en pic et qui redirige sur un autre site dans certains cas mais qui pèse 300 ko avec 4 ou 5 images je crois.

    Citation Envoyé par _Mac_ Voir le message
    A ma connaissance, il n'y a pas de tables toutes faites, cela s'ajuste par l'expérience en faisant des tests de charge du serveur
    Ce point m'intéresse beaucoup, je n'ai aucune expérience en la matière, pourrais tu "développez" ?
    Je me suis contenté de bidouiller avec ab pour le moment et à l'époque je ne regardais même pas le nb de processus , je me contentais de regarder le resultat free et d'augmenter les chiffres jusqu'à une erreur 500.

    Merci d'avance.
    Cdt.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par ithurts Voir le message
    Je me suis contenté de bidouiller avec ab pour le moment et à l'époque je ne regardais même pas le nb de processus , je me contentais de regarder le resultat free et d'augmenter les chiffres jusqu'à une erreur 500.
    Ben voilà, c'est bien ce qu'on appelle un test de charge : tu augmentes progressivement le nombre de requêtes sur le serveur jusqu'à ce qu'il lâche. Pendant le test, tu surveilles des trucs comme le CPU, la consommation mémoire, etc. pour en déduire le ou les endroits qui sont la cause du plantage, et en fonction de ces endroits, tu essaies d'optimiser (on dit "tuner") ton serveur. Mais tout test de perf se fait par rapport à une cible : tu dis jusqu'où ton serveur doit aller avant de craquer et tu vois si tu peux tenir cette charge cible.

Discussions similaires

  1. Apache ne se lance pas
    Par Catherinette dans le forum Apache
    Réponses: 1
    Dernier message: 02/01/2011, 12h10
  2. Savoir sur quel port le servuer apache-tomcat est lancé?
    Par proDZ dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 21/12/2009, 20h23
  3. Migration d'un site : Apache ne se lance plus
    Par singleProject dans le forum Apache
    Réponses: 2
    Dernier message: 25/11/2008, 14h44
  4. Comment savoir si le service apache est lancé avec java?
    Par devassam dans le forum Général Java
    Réponses: 3
    Dernier message: 25/08/2008, 18h19
  5. Réponses: 6
    Dernier message: 23/04/2008, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo