TUTORIEL PHP 
Optimiser vos applications PHP
La popularité grandissante du Web met une pression croissante sur les logiciels et le matériel utilisé pour les applications. Cet article va vous donner les tuyaux pour réduire la charge de vos serveurs, et augmenter la capacité de vos applications sans avoir à vous ruiner en mises à jour matérielles. (30/03/2004)

(fourni par Direction PHP)

<< 1. Commencer | 2. Configuer PHP | 3. Optimiser php.ini
4. Au-dela de la configuration | 5. Cacher en mémoire
 


Cache en mémoire

Indépendamment de l'utilisation d'un cache, la plupart des scripts font un bon nombre d'appel au système d'exploitation. Ces appels représentent un goulet de ralentissement, car même si le processeur et la mémoire des serveurs augmentent en vitesse, les disques durs restent lent. Cela ne prend pas longtemps pour atteindre la vitesse maximale de lecture ou d'écriture, qui se situe vers une douzaine de Mo par seconde.

Pour gagner encore en vitesse, il faut éliminer toutes les opérations liées au système de fichier. Même si cela semble une tâche impossible, une invention merveilleuse appelée ‘ramdisk' permet d'y accéder sans effort particulier. Un ramdisk, ou disque de mémoire, est un émulateur de disque dur en mémoire : pour un programme comme PHP, ce n'est rien qu'une autre partition de disque. Mais en fait, les données écrites sur le disque de mémoire sont écrites en mémoire vive, et les vitesses de transfert se chiffrent en centaines de Mo par seconde.

Presque tous les systèmes d'exploitation disposent de disques de mémoire, mais Linux va encore plus loin en liant ces disques avec un disque physique. Cela signifie qu'en obtenant les avantages de la vitesse de la mémoire, vous ne risquez pas pour autant de perdre toutes vos données lors du prochain crash système ou d'un redémarrage inopiné, car le noyau va synchroniser automatiquement les données sur le disque. Incidemment, il est très facile d'activer cette fonctionnalité : tout ce dont vous avez besoin est d'un accès root et de quelques minutes :

mount --bind -ttmpfs /tmp /tmp
mount --bind -ttmpfs /home/webroot
/home/webroot


L'exemple ci-dessus place deux dossiers couramment utilisés, le dossier temporaire et la racine web dans le disque de mémoire. Au bout du compte, toutes les opérations classiques sur le disque par PHP sont accélérées grâce à la réduction du temps d'administration. En même temps, la fiabilité du système n'est pas sacrifiée sur l'autel de la performance, et cette solution est idéale même pour les sites exigeants. Le seul inconvénient de cette solution est que le disque de mémoire utilise votre mémoire vive, et donc, si les dossiers sont trop gros, ils vont consommer toute la mémoire disponible. Il est donc recommandé d'utiliser cette solution avec prudence : assurez vous que les dossiers en mémoire ne consommeront pas toute votre mémoire, car le système va alors passer sur le disque, en SWAP, ce qui le ralentira fortement.

Et sans les mains !
Comme vous pouvez l'avoir compris à ce point de l'article, il y a de nombreux moyens pour accélérer les applications PHP sans avoir à toucher à une seule ligne de code : pas de risque d'introduire un bug mortel.

Notez aussi que la plupart des solutions ne demandent pas beaucoup de temps de mise en place, et conduisent à des accélérations impressionnantes.
Cela ne doit pas vous amener à abandonner les bonnes pratiques d'optimisation du code, ce qui est, bien sur, un outil primordial pour accélérer vos applications. Mais lorsque le temps presse et que la pression monte, il est souvent pratique de connaître quelques trucs efficaces pour accélérer le code, sans y toucher.

<< 1. Commencer | 2. Configuer PHP | 3. Optimiser php.ini
4. Au-dela de la configuration | 5. Cacher en mémoire
 
Ilia Alshanetsky pour JDN Développeurs
 
Accueil | Haut de page