Accélérer et optimiser PHP dans IIS


IIS / samedi, février 6th, 2010

iis7.gifDans un billet précédent (ici), je vous montrais comment déployer rapidement des applications PHP. Je vais maintenant vous donner la marche à suivre pour optimiser votre serveur IIS pour PHP.

Activer la compression

L’un des meilleurs moyens de réduire la bande passante nécessaire pour produire les réponses d’application est d’utiliser la compression HTTP. Cette compression peut permettre une réduction considérable de la taille de la réponse, souvent par un facteur de 10. N’importe quelle infrastructure d’application d’IIS 7.0 peut bénéficier de la compression dynamique, y compris ASP, ASP.NET ou PHP.

En dépit d’un mythe courant, la compression dynamique n’a généralement pas une trop grande surcharge de processeur. En fait, la compression dynamique génère souvent moins de 5 % de l’utilisation totale du processeur sur un serveur très sollicité.

compression.JPG

Optimisation du FastCGI

Nous allons paramétré ici le PHP Process Recycling Behavior ainsi le nombre d’instances par coeur (CPU Core). Entre 8 et 10 instances sont recommandés par coeur, donc 32 pour un Quad-Core.

optimize.JPG

Mise en cache de sortie

En général, la mise en cache est la méthode la plus utilisée pour améliorer les performances des applications qui effectuent un travail continu. Contrairement aux améliorations des performances spécifiques à une application qui nécessitent souvent beaucoup d’efforts et entament lentement la surcharge de traitement d’une application, la mise en cache élimine la surcharge des requêtes répétées pour le même contenu.

Le cache de sortie IIS 7.0 permet de mettre en cache le contenu dynamique de n’importe quelle application, y compris ASP, ASP.NET, PHP et toute autre infrastructure d’application compatible IIS 7.0. En proposant une prise en charge de base de la variabilité et de l’expiration du contenu, cette nouvelle fonctionnalité facilite l’implémentation de la mise en cache de contenu qui ne peut pas être mis en cache par le cache de noyau IIS. Elle permet néanmoins d’utiliser le cache de noyau pour un contenu qui est sujet à des restrictions.

cacheiis.JPG

WebPI active aussi d’emblée le Windows Cache Extension dans PHP.INI (si vous l’avez installé).

Pour analyser, si votre Windows Cache Extension joue bien son rôle, procédez comme cela:

iiscache1_-_Copie.JPG

Il faut d’ajouter un répertoire virtuel qui se situe dans C:\Program Files\IIS\Windows Cache for PHP, de rajouter dans le documents pas défaut wincache.php. Il convient également d’éditer le fichier PHP au niveau du mot de passe.

iiscache2_-_Copie.JPG

iiscache3.JPG

Vous pouvez ainsi analyser les statistiques de cache. A ce stade, votre serveur IIS est correctement configuré et optimisé pour PHP. Reste à déployer des applications…..