blog:tuning_apache_et_php

Tuning Apache et PHP

Pour améliorer les réponses d'Apache, commencer par activer la compression ; avec Apache 2.2, cela passe par un filtre et mod_deflate :

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
</IfModule>

Ici on compresse (GZip) les types MIME listés, séparés par des espaces. Cette directive s'insère dans un hôte virtuel, dans un répertoire (bloc <Directory> ou <DirectoryMatch>) ou une URL (bloc <Location> ou <LocationMatch>) ou directement pour tout le serveur.

Ensuite, cacher en mémoire ce qui peut l'être (utile uniquement si on dispose de pas mal de mémoire, contre-productif sinon !) ; pour cela, utiliser mod_cache et mod_mem_cache :

  • au niveau du serveur :
<IfModule mod_mem_cache.c>
   MCacheSize 32768
   MCacheMaxObjectCount 4096
   MCacheMinObjectSize 1
   MCacheMaxObjectSize 2048
</IfModule>
  • au niveau du virtual host :
   <IfModule mod_mem_cache.c>
        CacheEnable mem /images/
        CacheEnable mem /_media/
        CacheEnable mem /_detail/
        CacheEnable mem /lib/exe/
        CacheEnable mem /lib/images/
        CacheEnable mem /lib/tpl/sidebar/
        CacheEnable mem /lib/plugins/
   </IfModule>

Ici, j'alloue 32 MB au cache (⇒ la taille des processus augmente), je cache au maximum 200 fichiers, entre 1 octet et 4 Kio. Au delà, c'est le cache du système de fichiers du système d'exploitation qui sera utilisé. Ces paramètres sont globaux à tout le serveur. Ensuite, au niveau de l'hôte virtuel j'indique quelques URLs de répertoires contenant de petits fichiers.

Ce DokuWiki repose sur PHP, utilisons eaccelerator : après installation, dans le fichier de configuration php.ini, ajouter les lignes :

extension=eaccelerator.so

puis ajouter une section :

[eaccelerator]
eaccelerator.enable    = 1
eaccelerator.optimizer = 1
eaccelerator.cache_dir = /var/www/doku-kabs
eaccelerator.shm_only  = 32
eaccelerator.debug     = 0
eaccelerator.keys      = "shm"
eaccelerator.sessions  = "shm"
eaccelerator.content   = "shm_and_disk"

Créer le répertoire avec les droits appropriés (seul le daemon Apache peut y lire et y écrire).

La documentation est là : http://eaccelerator.net/wiki/Settings

Après quelques tests rapides avec Apache Benchmark, il s'avère que parmi eaccelerator, xcache et apc, eaccelerator est le plus rapide (ils se tiennent dans un mouchoir à quelques millisecondes dans mon environnement).

La prochaine fois, nous jouerons avec la bande passante avec mod_cband… À suivre.

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • blog/tuning_apache_et_php.txt
  • Dernière modification : 2011/07/16 18:59
  • de pc