[article] Optimiser son serveur dédié

Discussion dans 'Administration d'un site Web' créé par fandecine, 8 Mai 2006.

  1. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Voila bien longtemps que j'avais ce post en préparation, mais par manque de temps, je ne l'avais pas publié. N'étant pas un accros des cérémonies commémoratives , je profite de cette journée du 8 mais pour vous le présenter. :D

    Il s'adresse à tous les webmaster qui souhaitent tirer un meilleur profit de leur serveur LAMP.

    PRÉAMBULE

    L'optimisation universelle d'un serveur LAMP n'existant pas, cet article a pour objectif de vous donner les éléments que vous adapterez à vos besoins.

    Avant toute modification de configuration de votre serveur, il est nécessaire de réfléchir aux moyens de mesurer les changements de performances induits et mettre en place un banc de test.

    Pour mesurer l'impact de vos modifications je vous en propose 2 outils:

    apache bench (ab) normalement présent sur votre serveur apache. C'est un utilitaire en ligne de commande qui, même si il ne reproduit pas une utilisation de votre serveur par de vrais internautes, vous permettra de faire des comparaisons au grés des modifications de configuration.

    syntaxe: a -n100 -c10 http://domaine.com/page.html

    Dans cet exemple on effectue 100 requêtes par groupe de 10 (en parallèle) sur la page du domaine ou serveur domaine.com/page.html


    httperf téléchargeable à l'adresse http://www.hpl.hp.com/research/linux/httperf/

    Bien entendu, on effectuera les tests depuis une machine différente de la machine à tester pour ne pas fausser les mesures.

    En complément de ces outils, on pourra utiliser un script php pour mesurer le temps de génération de la page testée:
    Code:
    // au debut du script
    function tjs_GetTempsTraitement($timer1) {
      $timer2 = microtime();
      $timer2 = substr($timer2,strpos($timer2," ")) + substr($timer2,0,strpos($timer2," "));
      $timer1 = substr($timer1,strpos($timer1," ")) + substr($timer1,0,strpos($timer1," "));
      return round( ($timer2-$timer1) * 10000)/10;
    }
    $ChronoStart = microtime();
    
    //en fin de script
    $temps = tjs_GetTempsTraitement($ChronoStart);
    $temps=$temps/1000;
    echo"Page générée en ".$temps." seconde";
    if ($temps>=2) echo "s";
    
    Un accès au gestionnaire server-status permettra de prendre un instantané des processus apache activés ainsi que de la mémoire occupé qui nous servira pour affiner certains réglages.

    Avant de commencer:

    Personnellement, je monte moi-même mes serveurs à partir de la distribution linux (généralement une fedora 4) et je n'installe que le strict nécessaire sur le serveur y compris en ce qui concerne les modules apache. Le gain de performance n'est pas significatif mais cela me permet de choisir les versions d'application installée et évite une grande partie des trous de sécurité. La compréhension de ce topic nécessite un certaine connaissance des serveurs LAMP.


    Les Optimisations d'apache:

    note: nous allons modifier notre configuration apache à partir du fichier httpd.conf. Après chaque modif, il faut re-démarrer apache. Certaines modifications peuvent êtres testées sans modifier la configuration apache en utilisant la fonction PHP

    Désactiver les logs d'accès Apache

    Les logs d'accès apache génèrent une multitude d'accès disque et sont d'autant plus "bavards" que votre site dispose d'une audience importante. Le fichier acces.log peut ainsi contenir des millions de lignes et occuper plusieurs gigas sur votre serveur. Lorsque c'est le cas, lors de la rotation des logs, votre serveur peut devenir inaccessible aux visiteurs. D'autre part, ce type de fichier devient de part sa taille inexploitable donc inutile.

    Pour désactiver les logs d'accès apache, dans le fichier httpd.conf:

    CustomLog /dev/null combined

    La directive HostnameLookups

    Cette directive permet si apache effectue une requête de recherche des DNS ou pas. Il faut savoir qu'une recherche DNS peut être très longue et dépend du temps de réponse de l'adresse cliente et non de votre serveur. D'autres part, si l'adresse cliente ne peut être examinée, il faudra à la requête DNS une minute avant d'abandonner, temps pendant lequel le processus chargé de cette recherche ne pourra servir à rien d'autre. Il faut donc vérifier que cette directive est à Off (sur apache 2, c'est la valeur par défaut alors que sur apache 1.3 la valeur par défaut est On)

    La directive AllowOverride

    Cette directive indique à apache si il doit chercher un fichier .htaccess dans chacun des répertoires du chemin menant au fichier demandé. Vous comprenez évidemment l'implication sur les performances d'apache.

    Si vous n'utilisez pas les fichiers .htaccess, mettez cette directive à none pour tous les répertoire de votre serveur.

    Si vous utilisez les fichiers .htaccess, mettez cette directive à none pour tous les répertoire de votre serveur puis utilisez les section <Directory> pour n'activer les fichiers .htaccess uniquement ou cela est nécessaire.


    Voila pour ce qui est d'apache. Les utilisateurs plus avertis pourront se pencher sur les directives MaxClients
    La directive MaxClients, KeepAlive et les directives de MPM prefork et MPM workers.

    Du coté de PHP

    En dehors de la qualité du code, il existe des solutions pour améliorer les performances de PHP:

    La configuration de php (php.ini) contient de nombreuses valeurs par défaut qu'il est intéressant de modifier pour augmenter les performances de PHP. Et puis, J'ai l'habitude de désactiver tout ce qui est inutile:

    expose_php: Par défaut, chaque requête PHP émet un entête HTTP appelé X-Powered-By ce qui est une perte de temps et qui est totalement inutile (sauf pour les personnes qui cherchent à pénétrer sur votre système en se basant sur votre configuration :wink: ). Donc je met expose_php = Off

    magic_quotes_gpc: La solution de facilité consiste à mettre magic_quotes_gpc On. Grave erreur! Cela impose de nombreuse vérifications à PHP sur les variables en entrée des script (et sur un site dynamique il y en a beaucoup!) et la plupart du temps c'est inutile car la grande majorité de ces variables ne conduisent pas à un trou de sécurité. De plus, le webmaster pense être protégé des attaques par injection de code ce qui est malheureusement insuffisant. Je préfère gérer moi-même la protection de mes scripts (fonction addslashes() par exemple ou mysql_escape_string() pour les requêtes MySQL) j'économise des ressources, du temps d'exécution et le code de mes scripts est indépendant de la configuration du serveur. Donc, magic_quotes_gpc = Off

    output_buffering: Par défaut, PHP envoyer les données au navigateur en mesure que le script les lui transmet ce qui implique de nombreuses opération d'écriture/envoi et ralentit l'exécution du processus en invoquant de nombreux appels système. L'idéal et de fixer la taille du buffer de sorties à la valeur moyenne de la taille des pages de votre site pour essayer d'envoyer le contenu en une seule fois. Veiller cependant à ne pas mettre une valeur trop grande car une exécution simultanée de nombreux processus PHP risquerait de saturer votre mémoire!

    register_argc_argv: Utile seulement pour exécuter PHP en mode ligne de commande. Donc, dans le cas d'un serveur web register_argc_argv = Off.

    register_globals: Beaucoup de webmasters activent cette directive par habitude et facilité car ils n'on jamais ré-écrit leurs scripts depuis les versions avant PHP 4.2.0. C'est tellement facile de récupérer directement les arguments passés au script par leur nom de variable. Mais outre la faille de sécurité que cela représente, cela oblige PHP à stocker un nombre de variables très souvent inutiles. Donc, register_globals=Off. En plus, je met variables_order = GPC et j'utilise get_env() pour accéder aux variables systèmes et aux variables d'environnement. Tout cela réduit le temps d'analyse des variables en entrée de script et économise de la mémoire. (Pour ceux qui ont du mal suivre, lisez attentivement la doc PHP consacrée aux super globales)

    mysql_allow_persistent: Pour un serveur mutualisé, il me parait indispensable de mettre cette directive à Off. Dans d'autres cas, il y a matière à discussion. Personnellement je la met à Off pour éviter que chaque processus Apache ait une connexion particulière à la base de données ce qui finit toujours par entraîner un "Too many connections" même sur de très grosses configurations. Je prends également soin de fermer toutes mes connexions Mysql explicitement dans mes scripts.

    Indépendamment de la configuration de PHP, il existe d'autres solutions pour accélérer l'exécution de PHP:

    L'utilisation d'un compilateur PHP:

    Le langage PHP est un langage de script donc dit interpréter. A chaque exécution de script, le serveur doit lire le fichier, l'analyser, le vérifier, et le transformer en pseudo code avant de l'exécuter. Le processus est d'autant plus long que les scripts sont complexes et lourds. Pour éviter cela, on peut installer un compilateur. Personnellement j'utilise Zend Optimizer (utilisation gratuite sous licence Zend http://www.zend.com/products/zend_optimizer). Les gain de performance sont impressionnant sur certain site (jusqu'à 10 fois plus rapide! 8O )

    La mise en cache des scripts:

    Je ne vais pas refaire le débat sur l'utilisation d'un cache et quel cache utiliser ici. Référez vous au post https://www.webrankinfo.com/forum/t/script-mise-en-cache-des-pages-php.28614/
    La dernière version de cache maison que j'utilise à base de fichiers XML présente l'avantage, outre les performances, de rendre le contenu indépendant de l'habillage du site ce qui me permet de modifier une section du site très rapidement et sans effacer le cache.

    Après PHP, intéressons nous à MYSQL. Je ne parlerais pas de la qualité du code (il me faudrait un site web en entier! :lol: ). Je me contenterais de donner un petit truc simple à mettre en oeuvre et diablement efficace dans mon cas.

    Lors de nombreuses modifications de vos tables Mysql, celles-ci se fragmentent et perdent leur optimisation. Mysql vient à notre secours avec deux commandes (Optimize et Analyse). Comme il n'est pas question que j'exécute ces commandes manuellement, je paramètre une tache cron journalière pour faire le travail à ma place toute les nuits (lorsque même mes serveurs sommeillent! :wink: )

    Les plus accros pourront paramétrer le cache de requêtes mysql. Pour ma part, les essais que j'ai effectué ont montré que le gain de performance ce faisait au détriment d'une trop grosse consommation de mémoire. Le système de mise en cache des pages ne consomme lui, aucune ressource mémoire pour un gain bien plus important au niveau des performances. Mais je me garderais de généraliser car les gains de performances dépendent trop du type de sites et/ou d'applications installées sur le serveur.

    Voilà. En espérant que ce topic vous sera utile. :D

    PS: Merci de poser vos question sur ce fil et non en MP pour en faire profiter tout le monde. :wink:

    edit: juste pour corriger quelques fautes d'orthographe! :oops:
     
  2. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 673
    J'aime reçus:
    750
    merci ! un bon candidat aux recommandations ;-)
     
  3. birkoss
    birkoss WRInaute discret
    Inscrit:
    1 Août 2005
    Messages:
    109
    J'aime reçus:
    0
    +1 en effet.

    Par contre, apache bench a des limites dans les requetes qu'il envoie ??

    Car ca peut facilement virer en DOS sur certaines machines si plusieurs s'y mettent non ?
     
  4. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    C'est juste un outil de test et de mesure rudimentaire mais utile.

    Pour ce qui est attaques, c'est pas le plus efficace! :wink:
     
  5. Bourriquet
    Bourriquet WRInaute impliqué
    Inscrit:
    19 Septembre 2005
    Messages:
    561
    J'aime reçus:
    0
    Ca serait pas plutôt ça ?
    CustomLog /dev/null combined



    :)
     
  6. tjs
    tjs WRInaute discret
    Inscrit:
    18 Mai 2003
    Messages:
    146
    J'aime reçus:
    0
  7. karak
    karak WRInaute occasionnel
    Inscrit:
    7 Août 2005
    Messages:
    315
    J'aime reçus:
    0
    C'est exactement les infos que j'étais en train de chercher.

    Merci.
     
  8. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 673
    J'aime reçus:
    750
    tjs, j'ai parcouru l'article que tu cites, je ne retrouve pas les conseils fournis par fandecine... Cela dit ne créons pas de polémique, et restons dans le sujet SVP.
     
  9. JeunZ
    JeunZ WRInaute accro
    Inscrit:
    18 Février 2004
    Messages:
    3 942
    J'aime reçus:
    0
    Ah je suis content de voir que sans aucune connaissances mais avec deux ans d'expérience en serveur j'avais fait quelques modifs que tu indiques (couper les logs, ...).

    Je vais étudier tes autres indications.

    Merci et bravo.
     
  10. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    merci Bouriquet, je corrige de suite! :oops:


    Lorsque l'on est aussi vindicatif, on va au bout de ses recherches et on trouve l'origine des origines :wink: http://fr.php.net/manual/fr/function.microtime.php

    Mais, pour satisfaire les grincheux, une liste de liens ayant servis, entre autre, à la rédaction de cet article:

    http://www.toutjavascript.com/savoir/op ... mance.php3 (pour le script php de mesure du temp de génération d'une page), mais je pourais citer http://www.tommyweb.org/sourcesphp/tpspage.html

    http://www.apachefrance.com/
    http://httpd.apache.org/docs/1.3/programs/ab.html
    http://www.hpl.hp.com/research/linux/httperf/
    http://www.linux-france.org/article/web ... elinux.php
    http://www-fr.mysql.com/
    http://www.php.net/

    Tant que j'y suis, pour ceux qui veulent aller plus loin, un article sur le module de compression à la volée d'apache (mod_gzip) qui permet d'économiser de la bande passante:
    http://www.devparadise.com/technoweb/sys/d57.php

    On peut aussi donner quelques référence bibliographiques, mais le plus simple est d'aller sur http://www.oreilly.fr/ faire son choix.
     
  11. spijoelx
    spijoelx WRInaute discret
    Inscrit:
    6 Février 2004
    Messages:
    202
    J'aime reçus:
    0
    en ce qui concerne de couper les logs, il me semble qu'en france il est obligatoire d'en stocker 6mois non ?
     
  12. casa
    casa WRInaute discret
    Inscrit:
    13 Avril 2003
    Messages:
    191
    J'aime reçus:
    0
    Merci pour ces precieux conseils :D

    si je désactive access.log:
    est ce que awstats va toujours marcher ?
    et je suppose qu'il faut aussi désactiver le cron qui lance access.log ?

    merci
     
  13. ajax
    ajax WRInaute discret
    Inscrit:
    20 Mars 2006
    Messages:
    221
    J'aime reçus:
    0
    C'est exactement ce que je me demandais aussi. A mon avis awstats ne marchera plus car une fois j'ai du vider mes logs et cela a affecté les stats de la journée.
     
  14. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Effectivement, en desactivant les logs d'acces, les outils de stats type awstat, webalizer etc ne fonctionne pas, mais, pour continuer dans le cadre de l'optimisation d'un serveur, je rajouterais un conseil: Externaliser tout ce qui est possible cela soulagera votre serveur d'autant. Pour les stats, il suffit de s'abonner à xiti ou estat (gratuit).

    Enfin, ne pas oublier que la desactivation des logs d'accés présente un interet d'autant plus grand que les fichiers générés sont importants. Le gain pour un site à faible trafic n'est pas forcement significatif.

    il n'est pas necessaire de modifier les jobs cron.
     
  15. casa
    casa WRInaute discret
    Inscrit:
    13 Avril 2003
    Messages:
    191
    J'aime reçus:
    0
    Merci encore pour ces conseils et les autres scripts qui permettent de progresser
    :D

    casa
     
  16. CrazyMoto
    CrazyMoto Nouveau WRInaute
    Inscrit:
    6 Mai 2006
    Messages:
    20
    J'aime reçus:
    0
    Merci de ce tutoriel !

    En ce qui concerne l'output_buffering,

    Il faut rester dans que ordre de grandeur ?

    J'ai mis 25ko (Forum IPB 700 connectés en pointe sur Bixeon 2Go ram SCSI)

    Merci !
     
  17. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Il n'y a pas de valeur universelle! Mais avec 2 Go de memoire, je pense que tu peux augmenter. :wink:

    La valeur optimum est la taille moyenne des pages du site. Si le serveur commence à utiliser le swap, il faut diminuer soit la valeur du output_buffering, soit le nombre de processus apaches autorisé (ou peut être les deux!). Les réglages fin ne peuvent êtres obtenus qu'en faisant des tests (attention de ne pas modifier plusieurs parametres à la fois).
     
  18. CrazyMoto
    CrazyMoto Nouveau WRInaute
    Inscrit:
    6 Mai 2006
    Messages:
    20
    J'aime reçus:
    0
    Merci de ta réponse ;)

    Es tu certain qu'il soit benefique de l'activer ?

    Je vais tester par moi même remarque... :p

    En ce qui concerne la mise en cache/optimisateur de code, zend optimiser c'est bof bof je conseillerais plutot eaccelerator, ou à la rigueur APC cache :p
     
  19. sietjp
    sietjp WRInaute occasionnel
    Inscrit:
    14 Décembre 2003
    Messages:
    476
    J'aime reçus:
    1
    J'ai suivi ces conseils et j'ai gagné 1Mo sur chaque thread apache, merci, c'est toujours ça de gagné. Pour les performances je peux pas encore dire mais ça tourne pas plus mal en tout cas ^_^
     
  20. yanhl
    yanhl WRInaute impliqué
    Inscrit:
    4 Décembre 2003
    Messages:
    655
    J'aime reçus:
    0
    J'apprécie ton post, mais je trouve quelques points discutables, alors discutons ;-)

    Désactiver les logs d'accès Apache
    Je crois bien que la loi oblige à conserver les logs pendant 1 an (à vérifier). Quant à un volume "inexploitable", je ne suis pas trop d'accord. Dans mon post un peu dans le même sujet, je conseillais de ne garder que les pages dans les logs et de filtrer les images, css et js. Fatalement, le volume des logs se réduit énormément.

    La mise en cache des scripts
    Je recommande Cache_Lite plutôt que de ton script : Cache_Lite a un plus, il vérifie que les fichiers ne sont pas corrompus. Il propose de ne mettre en cache que des portions de page ou des pages entières, bref il est plutôt complet et fait face à quasiment toutes les situations possibles.

    Pour le cache d'opcode, j'utilise APC. D'après pas mal de benchs trouvés sur le net, celui de Zend n'est pas le plus performant.

    My two cents ;-)
     
  21. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Tu est la deuxiéme personne à dire qu'il faut conserver les logs un an. Tu dois t'appuyer sur un texte de loi, un article? Pourrais-tu nous le citer? Personellement, je n'ai jamais entendu ou lu quoi que ce soit dans ce sens. Ensuite, je maintiens mes propos sur l'exploitation des logs d'accès sur les sites à fort traffic:

    Si tu souhaite faire des stats, il vaut mieux externaliser se service (xiti, estat...)
    Si c'est pour surveiller le serveur, les logs d'erreurs apache at les autres fichiers logs linux sont suffisant : des fichiers logs de plusieurs dizaines de méga octets (ça existe même sans les images!) ne sont pas exploitables!

    Maintenant, a chacun sa religion, je ne cherche pas à te convertir! :wink:
    Mon cache dans sa version XML, présente l'avantage de séparer le contenu de l'habillage. Dans le cas de mon site, si je modifie le design de la page qui présente les fiches de films (plus de 29000) je ne suis pas obligé d'effacer les 29000 fiches de films...

    D'autres parts, de la même façon qu'avec le cache que tu préconise, je met en cache ce que je veux également, sauf le code html! :wink:

    Mais là encore à chacun sa religion... :D
     
  22. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Tu est la deuxiéme personne à dire qu'il faut conserver les logs un an. Tu dois t'appuyer sur un texte de loi, un article? Pourrais-tu nous le citer? Personellement, je n'ai jamais entendu ou lu quoi que ce soit dans ce sens. Ensuite, je maintiens mes propos sur l'exploitation des logs d'accès sur les sites à fort traffic:

    Si tu souhaite faire des stats, il vaut mieux externaliser se service (xiti, estat...)
    Si c'est pour surveiller le serveur, les logs d'erreurs apache at les autres fichiers logs linux sont suffisant : des fichiers logs de plusieurs dizaines de méga octets (ça existe même sans les images!) ne sont pas exploitables!

    Maintenant, a chacun sa religion, je ne cherche pas à te convertir! :wink:
    Mon cache dans sa version XML, présente l'avantage de séparer le contenu de l'habillage. Dans le cas de mon site, si je modifie le design de la page qui présente les fiches de films (plus de 29000) je ne suis pas obligé d'effacer les 29000 fiches de films...

    D'autres parts, de la même façon qu'avec le cache que tu préconise, je met en cache ce que je veux également, sauf le code html! :wink:

    Mais là encore à chacun sa religion... :D[/quote]
     
  23. Morph1er
    Morph1er WRInaute occasionnel
    Inscrit:
    7 Juillet 2004
    Messages:
    280
    J'aime reçus:
    0
    Tant qu'on est dans les systèmes de cache php, autant parler de eaccelerator qui a de meilleurs résultats en terme de gains de perf par rapport à zend. ;)
     
  24. caro
    caro WRInaute impliqué
    Inscrit:
    21 Juillet 2003
    Messages:
    761
    J'aime reçus:
    0
    perso je remercie énormément fandecine qui passe du temps pour nous donner de précieux conseils, ce coup ci c'est l'optimisation serveur, la fois d'avant un super code sur le cache php (que j'utilise d'ailleurs).
    si tout le monde partageait autant, ..., j'arrête sinon je vais m'énerver.
    encore merci fandecine pour tous tes efforts :wink:
     
  25. humainbot
    humainbot WRInaute discret
    Inscrit:
    26 Septembre 2004
    Messages:
    178
    J'aime reçus:
    0
    Salut a tous,
    j'aimerais savoir a quoi consiste un optimizer php tels que Zend, Eaccelerator.. il ne fait que optimiserle temps d'execution de nos scriptsphp ? rien a changer, seulement l'installer dans le serveur ?
    j'ai vulesite de Zendmais vu que c'est en anglais.. bof bof :(
     
  26. spijoelx
    spijoelx WRInaute discret
    Inscrit:
    6 Février 2004
    Messages:
    202
    J'aime reçus:
    0
    -http://www.zdnet.fr/actualites/internet/0,39020774,39297619,00.htm
    -http://www.thalix.com/index.php?/archives/96-Conservation-obligatoire-des-logs.html
     
  27. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Il ne s'agit que de l'adoption du projet de loi par l'asemblée et le sénat! Mais pas des décrets d'application. Ont-ils été publiés?
     
  28. Bouli
    Bouli WRInaute discret
    Inscrit:
    18 Août 2005
    Messages:
    94
    J'aime reçus:
    0
    J'ai bêtement appliquer à la lettre certaines recomandations comme la désactivation des logs et évidemment aujourdh'ui plantage du serveur et impossible de voir d'où ça vient :(

    Donc j'ai remis les logs et pour les rendre exploitables je les coupe en petits fichiers, chaque fichier ne peut dépasser 5 Mo et quand par exemple j'ai un plantage, il suffit juste de rapatrier le fichier correspond à l'heure du plantage.
     
  29. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    Surtout qu'avec un système de fichier digne de ce nom et Apache 2, les logs peuvent être bufferisés... donc impact ridicule sur les perfs du système.
     
  30. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Linux est trés bavard par nature et garde la trace de tout ce qu'il fait, il y a d'autres fichiers logs que ceux d'apache bien plus utiles pour faire un diagnostic! La réponse est rarement dans le fichier log d'accés apache...

    A chacun sa religion, mais des écritures fichiers bufférisées ou pas, cela fait des accés disques et consomme des ressources...
     
  31. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    Ouep mais justement, avec bufferisation du FS + celle d'Apache, les accès disques ne sont pas si fréquents... on ne peut donc pas dire que ça ait un impact si nefaste sur les performances.

    Du coup se priver des informations des logs pour gagner si peu de ressources, me semble complètement injustifié. :s
     
  32. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    On parle des logs d'accés apache uniquement! :wink:
     
  33. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    Oui oui... pour moi les informations fournies sont importantes...
     
  34. labrute
    labrute Nouveau WRInaute
    Inscrit:
    9 Octobre 2006
    Messages:
    20
    J'aime reçus:
    0
    pour les accelerateurs, est-ce que eaccelerator est suffisamment stable avec PHP5 ?
    a l'époque il y avait le fameux turck mmcache sur php4 qui fonctionnait bien, mais depuis, j'hésite à utiliser un optimiser...
     
  35. adviser
    adviser WRInaute discret
    Inscrit:
    23 Septembre 2003
    Messages:
    72
    J'aime reçus:
    0
    Supprimer les logs Apache et placer des outils gratuits, je ne vois pas du tout l'intérêt.
    Les logs donnent bien plus d'informations une fois qu'ils sont traités que ces outils là.

    C'est un faux problème.
    Une rotation quotidienne des logs (par un script) et tes fichiers sont de taille correcte.
    De plus, comme le suggère yanhl, on peut 'allèger' les logs en supprimant certains appels (images, js, css, favicon...).
     
  36. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    la rotation consiste bien dans le fait d'écraser (on perd donc les infos) pour y mettre les infos les plus récentes.?
     
  37. adviser
    adviser WRInaute discret
    Inscrit:
    23 Septembre 2003
    Messages:
    72
    J'aime reçus:
    0
    Soit j'ai utilisé un mauvais terme, soit je me suis mal exprimé :)
    Ce que je voulais dire, c'est que tu peux sans pb sauvegarder tes logs de manière quotidienne sans perdre de données.

    Rotation des logs Apache sur la FAQ Sivit.fr
     
  38. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    c'est donc bien ce que je disais : rotation des logs écrasement des données les plus anciennes (en fonction du délais de rotation) par les nouvelles données.

    moi ça ne me dérange pas...c'est vrai que le fichier sera plus légé..
    donc pour ceux qu'on un dédié et qui s'en moque..c'est bon..

    sinon il faut y penser.

    faire une rotation sur quelques jours de manière à garder quelques entrées.
     
  39. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    C'est pourtant écrit lisiblement! Lorsque je dit d'externaliser les services cela concerne l'utilisation des logs pour faire des stats d'accés (ex: webalizer).

    Ensuite, les logs il y en a plein d'autres qui donnent les mêmes infos. Donc je maintiens que sur un site en production il n'est pas nécéssaire d'activer les logs d'accés apache (je n'ai jamais parlé des logs d'erreur!)

    Là mon coco, on ne doit pas parler de lamême chose. avant la désactivation des logs d'accés sur un de mes serveurs le fichier logs d'accés bien qu'optimisé, dépassait allégrement le Go et lors de la rotation, le serveur était à plat! Je répette donc que cela dépend du trafic. Dans le cas que je site, prés de 350000 pages/jour donc logs d'accés enorme et innexploitables. (Si, si je maintiens :D ) donc desactivation et depuis, le serveur se porte à merveille!

    Enfin, je ne vais pas batailler des heures pour une question de philosopie... :wink:
     
  40. adviser
    adviser WRInaute discret
    Inscrit:
    23 Septembre 2003
    Messages:
    72
    J'aime reçus:
    0
    Je ne veux pas polémiquer dessus. Il est inutile de sortir des chiffres pour prouver quoique ce soit, ils seront toujours en deça de ce que nos serveurs traitent :mrgreen:

    Je trouve dommage de supprimer les logs pour "optimiser son serveur dédié".
     
  41. Misaki
    Misaki WRInaute discret
    Inscrit:
    16 Octobre 2006
    Messages:
    91
    J'aime reçus:
    0
    Perso j'ais des giga de log qui m'ennuis plus qu'autre chose , le seul qui m'interesse et qui est important c'est error_log .

    J'aimerais desactiver access_log mais ...

    CustomLog /dev/null combined
    on mets cette ligne a la place de quoi ??

    et 2 eme question ca désactive pas error_log au passage au moins ?
     
  42. Bourriquet
    Bourriquet WRInaute impliqué
    Inscrit:
    19 Septembre 2005
    Messages:
    561
    J'aime reçus:
    0
    Pour avoir bossé en tant qu'hotliner pour un hébergeur, je peux vous dire que les logs sont bien utiles, car c'est bien ceux-ci que demande la police en cas de problème.

    Une rotation des logs permet de garder un histoire. Concrètement, les données ne sont pas effacée, mais déplacée.

    Une rotation journalière, ça passe sans problème pour de gros serveurs, étant donné que ces opérations font appel directement à des exécutables. A mon avis, l'optimisation passe d'abord par analyser quelles sont les données critiques d'un système.

    Passer sous MySQL 5 permet dans un premier temps d'utiliser des fonctinnalités comme "SELECT SQL_CACHE" qui mets en cache le résultat d'une requête dans la mémoire vive, en surveillant si d'autres requêtes ne viennent pas modifier le résultat bufferisé. C'est une gestion des données intéressantes permettant un accès rapide aux données (temp d'accès ram < temps d'accès disque), tout en gardant une bonne synchro des données.

    On peut également songer à passer certaines tables dont le contenu n'est pas très important (sessions, stats) en type HEAP (ou Memory selon les versions): le contenu est alors stocké dans la RAM, le temps d'accès est accéléré, mais en cas de plantage ou de redémarrage, les données sont perdues.

    Pour optimiser un serveur, il n'est nul besoin vraiment de trouver des astuces, mais de se poser les bonnes questions et d'y donner de bonnes réponses.
     
  43. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    Par rapport au log, à partir de quel taille (approximativement) il devient trop "gros" ? 10 Mo ?

    pour avoir une idée
     
  44. Bourriquet
    Bourriquet WRInaute impliqué
    Inscrit:
    19 Septembre 2005
    Messages:
    561
    J'aime reçus:
    0
    Sur un serveur avec un trafic assez élevé, 150Mo ça passe, jusque 230Mo également. Au dela, ça lague mais uniquement en pics.

    Une solution intelligente serait d'analyser les statistiques de fréquentation pour forcer une rotation dans une zone creuse préccédent une zone de forte activité.

    Rien ne sert d'avoir un serveur optimisé tout le temps. Il doit être optimisé pour les périodes de forte fréquentation. Le but est de fluidifier la charge et le trafic.
     
  45. venomelektro
    venomelektro WRInaute discret
    Inscrit:
    16 Juin 2005
    Messages:
    170
    J'aime reçus:
    0
    comment dois on specifier a apache de ne pas logger images et css ? Merci


    sinon en quoi un gros fichier de logs est inutilisable, si tu utlise les outils pour ou que tu bricole un peu de bash , perl ou python tu pourras trouver les infos que tu veux.
     
  46. colonies
    colonies WRInaute impliqué
    Inscrit:
    10 Septembre 2006
    Messages:
    658
    J'aime reçus:
    108
  47. Neoxy
    Neoxy WRInaute occasionnel
    Inscrit:
    19 Avril 2006
    Messages:
    442
    J'aime reçus:
    0
    Article intéressant et recommandation par la même occasion.

    Une bonne optimisation de son serveur est importante pour faire tourner son site web.
     
  48. Funkizback
    Funkizback Nouveau WRInaute
    Inscrit:
    24 Janvier 2007
    Messages:
    7
    J'aime reçus:
    1
    Et Google Analytics! (Ex-version Urchin), pour moi y'a rien à dire, c'est excellent.
     
  49. Robinson
    Robinson WRInaute passionné
    Inscrit:
    26 Octobre 2005
    Messages:
    1 636
    J'aime reçus:
    0
    Je suis tout à fait d'accord mais comment faire ? :lol:
    80% du temps, mon serveur n'a aucun problème... mais lorsqu'aux heures pleines, de 400 à 550 personnes sont connectées en même temps... et bien ça ralentit fortement...
    Je vais créer un topic pour essayer demander quelques demandes d'optimisation spécifiques à mon serveur et site...
     
  50. Audiofeeline
    Audiofeeline WRInaute accro
    Inscrit:
    20 Octobre 2005
    Messages:
    4 172
    J'aime reçus:
    2
    -1
    Je test depuis une semaine PhpMyVisites et je dois dire que les résultats qu'il me donne sont tout à fait étonnants par rapport à Analytics...
    Mais bon on ne dénonce pas les sites sur WRI! :lol: :lol: :lol:
     
  51. david96
    david96 WRInaute passionné
    Inscrit:
    28 Août 2005
    Messages:
    1 204
    J'aime reçus:
    0
    Excellent ce topic (merci à toi fandecine) !
    Une tâche en particulier m'intéresse fortement.
    L'automatisation pour la base de données avec CRON.
    Mais voilà je n'ai encore jamais utilisé ce programme donc qué que quoi dont mettre comme ligne de syntaxe ou autre pour dire à Mysql "OPTIMIZE TABLE `bidule` " etc... à telle heure avec CRON ?
     
  52. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Bah! tu fait un script PHP pour lancer la commande OPTIMIZE et tu le met en Cron .

    Comme je suis un gros feinéant :wink: je te donne une URL: http://matthieu.developpez.com/execution_periodique/

    voilou!
     
  53. david96
    david96 WRInaute passionné
    Inscrit:
    28 Août 2005
    Messages:
    1 204
    J'aime reçus:
    0
    Bon sang mais c'est super easy ! Merci Fandecine et à l'auteur du lien mis en réf. :D
     
  54. Ohax
    Ohax WRInaute accro
    Inscrit:
    5 Juillet 2004
    Messages:
    4 900
    J'aime reçus:
    0
    Une reco, une !
     
  55. DVD
    DVD WRInaute discret
    Inscrit:
    15 Décembre 2006
    Messages:
    68
    J'aime reçus:
    0
    Une autre optimisation possible :
    - Utiliser lighttpd au lieu d'apache pour les images, les contenus statiques (css,..) et les fichiers.

    Ca permet de tenir la charge même si vous avez beaucoup de connexion simultanée et des contenus de taille importante (Video,...).
     
  56. rikew
    rikew WRInaute impliqué
    Inscrit:
    19 Décembre 2002
    Messages:
    683
    J'aime reçus:
    2
    J'aimerai bien savoir comment tu fait dans ce cas ?

    si je fait par exemple

    <Directory /home/web/>
    AllowOverride None
    </Directory>

    <Directory /home/web/monsite.com/www>
    AllowOverride All
    </Directory>

    le pb c'est qu'en suite le AllowOverride se propage dans les repertoires de www ... J'aimerai bien activer AllowOverride uniquement dans www ...

    Merci !
     
  57. IBuzzyou
    IBuzzyou WRInaute discret
    Inscrit:
    24 Février 2008
    Messages:
    54
    J'aime reçus:
    0
    Excellent merci. C'est ce que je cherchais!
     
  58. LeMulotNocturne
    LeMulotNocturne WRInaute impliqué
    Inscrit:
    1 Juin 2005
    Messages:
    551
    J'aime reçus:
    0
    Désolé Fandeciné, mais il est obligatoire de conserver les logs d'accès pendant 12 mois.
    En cas de requête judiciaire tu est dans l'obligation de les fournir (par exemple, suite à la plainte d'un membre d'un forum pour propos diffamatoire, ce n'est qu'un exemple).
     
  59. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    C'est le vieux serpent de mer qui ressort !

    Un éditeur de site internet n'est pas tenu de conserver les logs d'accés à son site.

    J'ai trouvé cette news récente sur le site de la CNIL : http://www.cnil.fr/index.php?id=2398&news[uid]=522&cHash=fa9b3406f6

    Mais comme cela n'était pas clair, j'ai appelé le service de juridique de la CNIL qui m'a effectivement confirmé qu'en tant qu'éditeur de site, je n'avais aucune obligation légale à l'heure actuelle de conserver les logs d'accès à mon site internet.

    voilou ! :D

    PS: ce qui n'ont pas confiance peuvent appeler la CNIL (service juridique) : 01.53.73.22.22
     
  60. Bourriquet
    Bourriquet WRInaute impliqué
    Inscrit:
    19 Septembre 2005
    Messages:
    561
    J'aime reçus:
    0
    Pour Robinson :

    Tu as essayé de jouer sur des options comme MaxClient, MaxRequestsPerChild, KeepAlive, etc. ?

    N'oublie pas aussi si tu utilises MySQL que lui aussi a des variables de configuration sur lesquelles il est possible de jouer (/et/mysql/my.cnf sous debian normalement)...

    Tu peux aussi utiliser un système de cache (comme jpcache) pour accélérer les temps de traitement sur les heures "pleines", qui se vide automatiquement uniquement en heure creuse...
     
  61. Robinson
    Robinson WRInaute passionné
    Inscrit:
    26 Octobre 2005
    Messages:
    1 636
    J'aime reçus:
    0
    Rho c'est gentil de ton aide mais mon message a déjà un an :lol:
     
  62. Bourriquet
    Bourriquet WRInaute impliqué
    Inscrit:
    19 Septembre 2005
    Messages:
    561
    J'aime reçus:
    0
    Erf, message nocture, j'ai mal lu la date, désolé ;-)

    Sinon, ça va ? LOL
     
  63. LeMulotNocturne
    LeMulotNocturne WRInaute impliqué
    Inscrit:
    1 Juin 2005
    Messages:
    551
    J'aime reçus:
    0

    Raaaaaaahhhhh !!! :wink: On parle de serveur dédié.
    Il n'est pas question de tes obligations en tant qu'éditeur, mais de tes obligations en tant qu'hébergeur. Avec un dédié, l'hébergeur, c'est toi (cf. les CGV de ton contrat de loc dedié).
     
  64. cdpdf
    cdpdf WRInaute impliqué
    Inscrit:
    11 Mars 2003
    Messages:
    729
    J'aime reçus:
    0
  65. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    cdpdf : l'article est intéressant, mais concerne bien plus les méthodes de développement que le serveur dédié en lui même. Ormis le cache d'opcode peut être...
     
Chargement...
Similar Threads - [article] Optimiser serveur Forum Date
[article] Optimiser son serveur dedié part II Administration d'un site Web 12 Février 2007
Google victime d'abus d'incompréhension dominante [Article] Droit du web (juridique, fiscalité...) 17 Septembre 2010
[Article] Automatisez le déploiement de vos sites Administration d'un site Web 13 Août 2009
[Article] Les journaux cherchent le moyen de faire payer leur contenu Monétisation d'un site web 24 Mars 2009
[article] Exploiter les stats Google Webmaster Tools Référencement Google 16 Octobre 2008
[article] backlinks: la mort de l' Ancre Référencement Google 30 Septembre 2008
[Article] Lighttpd et apache sur le même serveur II Administration d'un site Web 26 Juin 2008
[Article] [beta]Sauvegarder un dédié part II Administration d'un site Web 13 Juin 2008
[Article] Configurer lighttpd (lighty) avec php5 Administration d'un site Web 16 Janvier 2008
[Article] Exemple de script de sauvegarde pour un dédié Administration d'un site Web 13 Janvier 2008
[article] APACHE, comment ça marche ? Administration d'un site Web 28 Décembre 2007
[article] Faire évoluer son architecture serveur Administration d'un site Web 4 Novembre 2007
[article] illustration de la force ds liens internes Référencement Google 19 Août 2007
[article] Bien configurer apache Administration d'un site Web 27 Novembre 2006
[article] Sécuriser son serveur LAMP Administration d'un site Web 18 Août 2006
[Article] Link Spam Detection Based on Mass Estimation Techniques avancées de référencement 9 Novembre 2005
[article] Google, Yahoo et MSN unis contre le spam ? Techniques avancées de référencement 26 Janvier 2005
[Article] L'effet sandbox sur Google Référencement Google 29 Décembre 2004
[Article] Le poids des mots, le choc des URL :-) Référencement Google 8 Décembre 2004
[Article] La commande link:URL sur Google Netlinking, backlinks, liens et redirections 5 Décembre 2004