Booster Apache avec EnableSendfile et le Zero Copy
C’est en préparant activement mon intervention pour lundi et mardi sur Apache que je viens de découvrir une directive magique, qui vous fera définitivement regretter Nginx ! ;+)
Apache sait utiliser le mécanisme dit de Zero Copy présent dans le noyau Linux 2.6 qui vous évite de passer par l’application pour envoyer un fichier vers une socket. La documentation Apache sur la directive EnableSendfile introduite dans la version 2.0.44 et supérieure fait part de quelques bugs avec certaines cartes IPv6, l’Itanium pour des fichiers de plus de 2 GB ainsi que pour les partages réseau !
Test
J’ai mesuré le temps de chargement de la page d’accueil de mon site Extime. Je tiens à préciser que j’ai basculé en php-fpm en mode socket !
EnableSendfile > Off | EnableSendfile > On | Gain | |
Firefox 58 | 1.7 s | 1.5 s | +11.7% |
Chromium 65 | 1.13 s | 0.99 s | +12.4% |