Blog ENI : Toute la veille numérique !
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée

Optimisation du service Apache

Introduction

De nos jours, la plupart des services que nous utilisons sont accessibles depuis Internet. Ainsi, certains sites web font partie du quotidien des internautes et nécessitent donc d’être performants et hautement disponibles. Ces deux notions, bien que différentes, sont pourtant étroitement liées.

En effet, un site toujours disponible mais lent perdra sa fréquentation pour cause d’utilisation trop fastidieuse. Il en est de même pour un site très rapide mais qui souffre d’interruptions de service récurrentes.

Il convient donc d’optimiser les plates-formes web et leurs composants afin de répondre au mieux aux requêtes des clients.

Nous allons ainsi aborder dans ce chapitre différents moyens d’optimisation du service Apache.

Gestion des ressources (matérielles, système, réseau)

1. Mémoire vive

La principale ressource utilisée par Apache est la mémoire vive.

Au démarrage, un processus sous le compte root est créé, suivi de nouveaux processus sous le compte utilisateur et le groupe définis par les directives User et Group.


marty@vm-compilation-eni:~$ sudo ps -ylC httpd  
S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY   TIME CMD  
S     0  9459     1  0 80   0   5648 40939 -      ?     00:00:00 httpd 
S 10000  9462  9459  0 80   0   2880 40358 -      ?     00:00:00 httpd 
S 10000  9463  9459  0 80   0   4520 94312 -      ?     00:00:00 httpd 
S 10000  9464  9459  0 80   0   4512 94312 -      ?     00:00:00 httpd 
S 10000  9465  9459  0 80   0   4520 94312 -      ?     00:00:00 httpd
 

Pour connaître l’utilisation mémoire d’Apache, il suffit d’observer la huitième colonne (RSS) qui correspond à la valeur de la mémoire réellement utilisée.

Il s’agit donc d’additionner les valeurs de cette colonne exprimée en kilo-octets :


marty@vm-compilation-eni:~$ sudo ps -ylC httpd|awk '{ SUM += $8}  
END { print SUM/1024 }'  
21.5625
 

Grâce à la commande awk, on effectue la somme de la colonne 8 et on passe la valeur obtenue en Mo en divisant par 1024 (octets).

a. Charger les modules strictement nécessaires

Sur ce serveur, il y a donc au total cinq processus consommant environ 21,5 Mo de mémoire vive.

Les modules actuellement chargés sont :


marty@vm-compilation-eni:~$ sudo apachectl -t -D DUMP_MODULES  
Loaded Modules:  
 core_module (static)  
 so_module (static)  
 http_module (static)  
 mpm_event_module (static)  
 unixd_module (shared)  
 ssl_module (shared)  
 authz_core_module (shared)  
 authn_core_module (shared)  
 auth_basic_module (shared)  
 auth_digest_module (shared)  
 authn_file_module (shared)  
 authz_user_module (shared)  
 authz_host_module...