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 :

Problème de configuration de serveur web


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Problème de configuration de serveur web
    Bonjour,

    Je suis entrain de me battre avec la configuration de mon serveur, et je n'arrive à rien. Voici des infos sur le serveur :

    Hardware : Processor E5620 2400 Mhz 2 CPU 4 Cores, 8 GB RAM
    OS : Linux version 2.6.32-5-amd64 (Debian 2.6.32-38) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Oct 3 03:59:20 UTC 2011

    La machine n'héberge qu'un seul site internet mais qui a un gros traffic (1 million de pages vues par jour, 4000 visiteurs simultanés aux heures de pointes), pas de streaming, pas de fichiers hébergés sur le serveur à télécharger, juste des pages web et des images, qui sont déjà pas mal optimisées (compressées, sprites, mise en cache,..).

    J'ai donc installé dessus PHP5, Apache/2.2.16 (Debian), MySQL 5.1.49 et qques autres trucs sans importances.

    Mon soucis est que Apache ne répond pas du tout comme je le souhaite.
    Lorsque je fais un top, je vois le process mysqld qui tourne entre 10 et 50%, et tous les process apache2 qui suivent, qui tournent entre 0 et 2%. Au niveau des CPU(s) used, même à l'heure de pointe ca dépasse pas 10%.

    Le soucis est que de temps en temps, Apache me lache, dans mon top je vois tous les process disparaitr et finalement ne reste que le process mysqld.. Si je lance un "service apache2 statuts", ca me dit running..
    Si je ne fais rien et que j'attends quelques secondes (parfois 1-2 minutes), ca se relance tout seul, et les process reviennent.

    En dehors de ça, il est parfois quasiment impossible de se connecter à l'heure de pointe sur le site, comme si Apache ne répondait pas, où était surchargé.. Pourtant le serveur est loin d'utiliser sa pleine capacité....


    Je vous file les valeurs critiques de la config d'apache :

    /etc/apache2/apache2.conf

    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
    Timeout 20
    KeepAlive Off
    MaxKeepAliveRequests 300
    KeepAliveTimeout 10
     
    <IfModule mpm_prefork_module>
        StartServers         10
        MinSpareServers    10
        MaxSpareServers      50
        ServerLimit         512
        MaxClients          512
        MaxRequestsPerChild 400
    </IfModule>
    <IfModule mpm_worker_module>
        StartServers         10
        MinSpareThreads      20
        MaxSpareThreads     100
        ThreadLimit         128
        ThreadsPerChild      20
        ServerLimit         512
        MaxClients          512
        MaxRequestsPerChild 400
    </IfModule>
    <IfModule mpm_event_module>
        StartServers         10
        ServerLimit         512
        MaxClients          512
        MinSpareThreads      20
        MaxSpareThreads     100
        ThreadLimit         128
        ThreadsPerChild      20
        MaxRequestsPerChild 400
    </IfModule>
    /etc/php5/apache2/php.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    max_execution_time=30
    memory_limit = 64M
    /etc/mysql/my.cnf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    key_buffer              = 64M
    max_allowed_packet      = 32M
    thread_stack            = 384K
    thread_cache_size       = 64M
     
    max_connections        = 500
    table_cache            = 256M
    thread_concurrency     = 16
     
    query_cache_limit       = 4M
    query_cache_size        = 256M
    Dans mon phpmyadmin, mon max de connexions simultanées est 380 (c'est élevé mais je crois que c'est à cause des problèmes de lags tout ça).
    Le traffic est d'un giga par heure en moyenne, 100 requêtes par seconde en moyenne.

    Mais mysql m'a l'air de tourner tout à fait correctement contrairement à Apache.
    J'ai cherché sur les forums, lu des trucs concernant tel ou tel paramètre, essayé une multitudes de valeurs, peut-être je les combinais mal je sais pas, mais ça commence à durer et les visiteurs en ont marre et moi plus qu'eux encore.

    J'avais ces soucis sur un précédent serveur, j'ai pris celui ci beaucoup plus puissant que l'ancien, et rien ne change, c'est même parfois pire.. Je suis certain que c'est un soucis de config. Un expert résoudrait probablement ça en 10 minutes chrono..

    Si quelqu'un a des solutions à me proposer, ou connait quelqu'un qui s'y connait en configuration serveur web linux et qui serait prêt à m'aider, une aide serait vraiment la bienvenue.

    Merci d'avance de m'avoir lu, j'espère que ces infos peuvent vous servir.

  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
    Je suis nul en perf, je n'y connais rien, donc il y a peu de chances que je t'aide, mais on ne sait jamais. Il y a quoi dans les logs d'erreur d'Apache et dans le syslog du système au moment du crash ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je ne suis pas "expert" apache, mais je veux bien mettre la main à la patte.
    Dans un premier temps ce que j'ai pu voir, les valeurs "KeepAlive" et "KeepAliveTimeout" peuvent être ajustés.
    Essaye de passer le KeepAlive à "ON" cela évitera d'ouvrir une connexion à chaque chargement de contenu HTML/image. Je pense que ca déchargera le serveur étant donnée les nombreuses images présentent sur le site.
    Ensuite le deuxième paramètre qui va de paire "KeepAliveTimeout", cette valeur détermine le temps avant le traitement d'une nouvelle requête. Il conseille de descendre la valeur entre deux et cinq secondes...

    Je pense que tu as déjà cherché, mais si tu regardes sur le lien que je te passe ci-dessous tu devrais pouvoir t'en sortir.

    http://www.howtoforge.com/configurin...um_performance

    Pourrais-tu nous donner les valeurs que tu as déjà essayé de changer ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonsoir
    Et que donnent les logs
    -syslog et autres ..?
    que donnent ps -aux?
    Depuis combien de temps n'avez vous pas redémarré votre serveur ? Que donne free -m ? (RAM pleine?... )


    Bon courage

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Bonsoir !

    Il s'est passé du temps depuis mon post, effectivement j'ai testé toutes sortes de valeurs de mon côté, sans jamais trouver la bonne combinaison je pense.

    La commande free -m me donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                 total       used       free     shared    buffers     cached
    Mem:          7997       7595        401          0        452       5340
    -/+ buffers/cache:       1802       6194
    Swap:         3906         18       3887
    Je sais que ma mémoire est pleine hein, c'est un peu normal.

    Voici les valeurs que j'ai changées :

    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
    Timeout 20
    KeepAlive Off
    MaxKeepAliveRequests 0
    KeepAliveTimeout 5
     
    <IfModule mpm_prefork_module>
        StartServers         20
        MinSpareServers    20
        MaxSpareServers      500
        MaxClients          250
        MaxRequestsPerChild 100
    </IfModule>
    <IfModule mpm_worker_module>
        StartServers         20
        MinSpareThreads      20
        MaxSpareThreads     100
        ThreadLimit         128
        ThreadsPerChild      20
        MaxClients          250
        MaxRequestsPerChild 100
    </IfModule>
    <IfModule mpm_event_module>
        StartServers         15
        MaxClients          150
        MinSpareThreads      20
        MaxSpareThreads     100
        ThreadLimit         128
        ThreadsPerChild      20
        MaxRequestsPerChild 100
    </IfModule>
    Sinon la commande ps -aux me donne une tonne de lignes telles que celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www-data   482  0.1  0.2 352832 19256 ?        S    19:18   0:00 /usr/sbin/apache2 -k start
    ainsi que la ligne mysql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql    13865 35.1  5.3 1497368 441420 ?      Sl   Nov18 7035:22 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid .........
    et d'autres lignes en tous genres.

    J'ai aussi mis en place fail2ban, ainsi qu'eaccelerator.

    J'ai l'impression que le serveur va déjà mieux, même si c'est pas encore extraordinaire.

    Je n'ai pas mis le KeepAlive à On, car quand je le mets, j'ai l'impression que c'est pire. Je m'explique quand je demande une page du serveur, et bien ça tourne dans le vide pendant parfois 5-6 secondes, et puis une fois que la connexion est établie tout va très vite. Ca ne le fait pas tout le temps, mais suffisamment pour énerver rapidement.

    J'ai l'impression qu'augmenter le MaxClient et le MaxServers a amélioré les choses. C'est possible?

    Dernière info le serveur a été redémarré y a 23 jours. Ce n'est pas beaucoup.

    Ah oui et pour le fichier /var/log/syslog, il contient principalement des lignes sur l'envoi d'emails, mais je remarque que y doit surement y avoir un bug qque part là dedans car j'ai des centaines de lignes qui se ressemblent, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dec  2 06:44:04 redlist sm-mta[1169]: pARGoVwY006313: to=<roseline@cite.net>, ctladdr=<www-data@localhost> (33/33), delay=4+12:53:33, xdelay=00:00:01, mailer=esmtp, pri=58981979, relay=smtp5.vid$
    Merci à vous de chercher avec moi :-)

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    La valeur Maxclients peut avoir un impact assez important si elle est mise trop haute. Je pense que tu veux dire "diminuer" plutôt que augmenter car dans le premier Post, MaxClient = 512 et maintenant Maxclients = 250 ) Cette valeur là se calcul :

    In English :
    " Appropriate value for MaxClients can be calculated as: MaxClients = Total RAM dedicated to the web server / Max child process size ---- [4] Child process size for serving static file is about 2-3M. For dynamic content such as PHP, it may be around 15M."

    Si tu as 4 go de RAM dédié à Apache :

    4096 / 15 = 273 pour le MaxClients

    Fail2ban ne te fait pas gagner directement en perf, mais en bannant des requêtes inutiles, ont fini par y gagner réellement, donc c'est possible. Essaye de voir du coté des logs de F2B pour voir si il as une bonne activé...

    JE te conseillerai également de descendre le MaxSpareServeur, car la création de proccess bouffe pas mal de ressource et surtout bloque les requêtes clients. Diminue le au moins de moitité (500 => 250 voir 200 )

    Sur ce genre de problème, le mieux est de mettre en place une "supervision" puis de changer paramètre par paramètre sur une plage de temps donnée (2 jours par ex), puis d'analyser pour voir si les temps de réponse sont meilleur ou pas.

    Sinon, on ne sait jamais si on vas dans la bonne direction !

    Petit plus : Etant utilisateur du site, je peux dire que je n’ai pas eut de ralentissement gênant ces derniers jours.

Discussions similaires

  1. Problème de configuration du serveur web Apache2
    Par dramanebox dans le forum SAGE
    Réponses: 1
    Dernier message: 04/07/2011, 15h57
  2. [FORMS 6i] Configuration du serveur WEB
    Par solean45 dans le forum Forms
    Réponses: 12
    Dernier message: 06/04/2007, 13h15
  3. Réponses: 1
    Dernier message: 01/02/2007, 00h14
  4. Problème de configuration du serveur X
    Par franc82 dans le forum Mandriva / Mageia
    Réponses: 4
    Dernier message: 03/01/2007, 08h50
  5. Réponses: 2
    Dernier message: 30/10/2006, 15h25

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