Optimisation Apache2

From Tuxunix
Jump to: navigation, search

Optimiser Apache2

La configuration apache est une chose peu évidente, voici quelques astuces pour améliorer les performances :

Fichier : "apache2.conf"

Timeout 120
  • Au bout 120 sec si le client ne fait rien serveur ferme la connexion.
KeepAlive On 
MaxKeepAliveRequests 100 
KeepAliveTimeout 15
  • KeepAlive permet de faire plusieurs requêtes avec une connexion
  • MaxKeepAliveRequests correspond
  • KeepAliveTimeout correspond au timeout d'une connexion


MinSpareServers 10 
MaxSpareServers 20 
StartServers 15
  • Definition du nombre de slot redémarrage et prêt a accepter les connexions, puis des requêtes.
MaxClients 150
ServerLimits 150
MaxRequestsPerChild 10000
  • MaxClients est le nombre de connexion (slot) possible en simultanee a definir en fonction de la ram disponible.
  • MaxRequestsPerChild est le nombre de requetes fait sur un slot apres lesquels un slot sera renouvelle.
HostnameLookups off
  • Désactive la recherche DNS sur les requetes des clients.
<Directory /> 
    AllowOverride None 
</Directory>
  • Préférable au paramètre All, cela évite une recherche dans chaque sous-répertoire du fichier htaccess.
  • Préférer également la désactivation des Symlinks...

Apache2 worker et PHP FastCGI

  • Parce que la gestion des threads est plus mieux que moins bien, (moins d'utilisation mémoire car moins d'ouverture/fermeture process, utilisation des mutex...)
#> apt-get install apache2-mpm-worker libapache2-mod-fcgid
#> a2enmod fcgid
== PHP 5 en mode CGI ==
#> apt-get install php5-cgi
<Directory /var/www/>

    AddHandler fcgid-script .php
    FCGIWrapper /usr/lib/cgi-bin/php5 .php
    Options ExecCGI -Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

</Directory>
  • ATTENTION p'tit problème rencontré avec mediawiki, j'ai du rajouté un rewrite spécial pour le mode cgi :
RewriteRule ^/index.php/(.*)$ http://%{HTTP_HOST}/index.php?title=$1

NGINX

  • A tester, mais de très bon echo "hello world" (private jocke)

Mémoire Apache

  • Colonne rss exprimé en Ko :
#> ps -ylC apache2 --sort:rss 
  • Connaitre la place utilisee en memoire par le processus apache2
#> ps -ylC apache2 --sort:rss | awk '{SUM += $8} END {print SUM}'

Benchmark Apache

#> ab -c 100 -n 1000 http://tuxedo.fr:80/index.php