Extensibilité

Déplacer un site web d’une machine servant à faire quelques requêtes de test à un site professionnel capable de répondre à un flot continu de requêtes peut ne pas être aussi simple qu’il n’y paraît.

Performances

Un site chargé aura des problèmes de performances, ce qui nous ramène à la question suivante : « Servons-nous le nombre maximum de clients pour un coût minimum ? ».

Outils

Sous Unix, vous pouvez voir les ressources utilisées à l’aide des commandes top, vmstat, swapinfo, iostat et assimilées (voir Les bases de l’administration système, d’Æleen Frisch).

Le module mod_info d’Apache

mod_info permet de surveiller et de diagnostiquer les processus qui utilisent HTTPD. Voir le chapitre 10.

Bande passante

Votre matériel peut fonctionner parfaitement mais être étranglé par les limitations de la bande passante entre vous et le Web. Vous devriez pouvoir estimer grossièrement la bande passante dont vous avez besoin en multipliant le nombre de transactions par seconde par le nombre d’octets transférés (en tenant compte des en-têtes HTTP ajoutés à chaque page web, qui ne sont pas négligeables). Cela étant fait, vérifiez ce qui se passe vraiment en utilisant un utilitaire comme ipfm, que vous pouvez obtenir à partir de http://www.via.ecp.fr/~tibob/ipfm/ :

HOST IN OUT TOTAL

hote1.domaine.com 12345 6666684 6679029

hote2.domaine.com 1232314 12345 1244659

hote3.domaine.com 6645632 123 6645755

...

Ou utilisez cricket ( http://cricket.sourceforge.net/ ) pour produire de jolis graphiques.

Répartition des charges

mod_backhand est un logiciel libre qui permet de répartir la charge du serveur et que nous présenterons plus loin. Si vous recherchez des logiciels payants et chers, regardez du côté de ServerIron, BigIP, et LoadDirector.

Serveur d’images, serveur de textes

Le volume de RAM dont vous disposez limite le nombre d’instances d’Apache ( httpd ou httpsd ) qui peuvent s’exécuter, et donc le nombre de clients que vous pouvez traiter simultanément. Vous pouvez réduire la taille de certaines instances httpd en ayant des versions adaptées spécialement aux images, aux fichiers PDF ou à du texte, tout en faisant tourner une version complète pour gérer les scripts.

La différence de taille vient généralement de la nécessité de charger un langage de script comme Perl ou PHP dans httpd. Comme ils fournissent un stockage des modules et des variables qui est maintenu entre les requêtes, ces langages ont tendance à consommer bien plus de mémoire que les serveurs qui ne fournissent que des pages statiques ou des images. La solution habituelle consiste à lancer deux instances d’Apache : l’une pour tout ce qui est statique, l’autre pour les scripts. Chaque instance doit être liée à une combinaison différente adresse/port, bien sûr, et le nombre d’instances pour les pages dynamiques doit être limité pour éviter les encombrements mémoire.

Bases de données partagées ou répliquées

Vous pouvez accélérer les accès à vos bases de données en les répliquant sur plusieurs machines afin qu’elles puissent répondre indépendamment aux clients. Cette réplication est facile si les données sont statiques : des catalogues, des textes, des bibliothèques d’images, etc. Elle est difficile si la base est souvent mise à jour comme c’est le cas avec des clients actifs. Cependant, vous pouvez contourner la réplication en divisant votre base de données en plusieurs morceaux (s’il s’agit d’une base de données des clients, vous pouvez la diviser selon le nom, par exemple : de A à D, de E à G, etc.), chacun d’eux étant pris en charge par une machine différente. Pour augmenter la vitesse, il faut la diviser en morceaux encore plus petits et rajouter des serveurs.

Apache La référence
titlepage.xhtml
APACHE-la-REF_split_000.htm
APACHE-la-REF_split_001.htm
APACHE-la-REF_split_002.htm
APACHE-la-REF_split_003.htm
APACHE-la-REF_split_004.htm
APACHE-la-REF_split_005.htm
APACHE-la-REF_split_006.htm
APACHE-la-REF_split_007.htm
APACHE-la-REF_split_008.htm
APACHE-la-REF_split_009.htm
APACHE-la-REF_split_010.htm
APACHE-la-REF_split_011.htm
APACHE-la-REF_split_012.htm
APACHE-la-REF_split_013.htm
APACHE-la-REF_split_014.htm
APACHE-la-REF_split_015.htm
APACHE-la-REF_split_016.htm
APACHE-la-REF_split_017.htm
APACHE-la-REF_split_018.htm
APACHE-la-REF_split_019.htm
APACHE-la-REF_split_020.htm
APACHE-la-REF_split_021.htm
APACHE-la-REF_split_022.htm
APACHE-la-REF_split_023.htm
APACHE-la-REF_split_024.htm
APACHE-la-REF_split_025.htm
APACHE-la-REF_split_026.htm
APACHE-la-REF_split_027.htm
APACHE-la-REF_split_028.htm
APACHE-la-REF_split_029.htm
APACHE-la-REF_split_030.htm
APACHE-la-REF_split_031.htm
APACHE-la-REF_split_032.htm
APACHE-la-REF_split_033.htm
APACHE-la-REF_split_034.htm
APACHE-la-REF_split_035.htm
APACHE-la-REF_split_036.htm
APACHE-la-REF_split_037.htm
APACHE-la-REF_split_038.htm
APACHE-la-REF_split_039.htm
APACHE-la-REF_split_040.htm
APACHE-la-REF_split_041.htm
APACHE-la-REF_split_042.htm
APACHE-la-REF_split_043.htm
APACHE-la-REF_split_044.htm
APACHE-la-REF_split_045.htm
APACHE-la-REF_split_046.htm
APACHE-la-REF_split_047.htm
APACHE-la-REF_split_048.htm
APACHE-la-REF_split_049.htm
APACHE-la-REF_split_050.htm
APACHE-la-REF_split_051.htm
APACHE-la-REF_split_052.htm
APACHE-la-REF_split_053.htm
APACHE-la-REF_split_054.htm
APACHE-la-REF_split_055.htm
APACHE-la-REF_split_056.htm
APACHE-la-REF_split_057.htm
APACHE-la-REF_split_058.htm
APACHE-la-REF_split_059.htm
APACHE-la-REF_split_060.htm
APACHE-la-REF_split_061.htm
APACHE-la-REF_split_062.htm
APACHE-la-REF_split_063.htm
APACHE-la-REF_split_064.htm
APACHE-la-REF_split_065.htm
APACHE-la-REF_split_066.htm
APACHE-la-REF_split_067.htm
APACHE-la-REF_split_068.htm
APACHE-la-REF_split_069.htm
APACHE-la-REF_split_070.htm
APACHE-la-REF_split_071.htm
APACHE-la-REF_split_072.htm
APACHE-la-REF_split_073.htm
APACHE-la-REF_split_074.htm
APACHE-la-REF_split_075.htm
APACHE-la-REF_split_076.htm
APACHE-la-REF_split_077.htm
APACHE-la-REF_split_078.htm
APACHE-la-REF_split_079.htm
APACHE-la-REF_split_080.htm
APACHE-la-REF_split_081.htm
APACHE-la-REF_split_082.htm
APACHE-la-REF_split_083.htm
APACHE-la-REF_split_084.htm
APACHE-la-REF_split_085.htm
APACHE-la-REF_split_086.htm
APACHE-la-REF_split_087.htm
APACHE-la-REF_split_088.htm
APACHE-la-REF_split_089.htm
APACHE-la-REF_split_090.htm
APACHE-la-REF_split_091.htm
APACHE-la-REF_split_092.htm
APACHE-la-REF_split_093.htm
APACHE-la-REF_split_094.htm
APACHE-la-REF_split_095.htm
APACHE-la-REF_split_096.htm
APACHE-la-REF_split_097.htm
APACHE-la-REF_split_098.htm
APACHE-la-REF_split_099.htm
APACHE-la-REF_split_100.htm
APACHE-la-REF_split_101.htm
APACHE-la-REF_split_102.htm
APACHE-la-REF_split_103.htm
APACHE-la-REF_split_104.htm
APACHE-la-REF_split_105.htm
APACHE-la-REF_split_106.htm
APACHE-la-REF_split_107.htm
APACHE-la-REF_split_108.htm
APACHE-la-REF_split_109.htm
APACHE-la-REF_split_110.htm
APACHE-la-REF_split_111.htm
APACHE-la-REF_split_112.htm
APACHE-la-REF_split_113.htm
APACHE-la-REF_split_114.htm
APACHE-la-REF_split_115.htm
APACHE-la-REF_split_116.htm
APACHE-la-REF_split_117.htm
APACHE-la-REF_split_118.htm
APACHE-la-REF_split_119.htm
APACHE-la-REF_split_120.htm
APACHE-la-REF_split_121.htm
APACHE-la-REF_split_122.htm
APACHE-la-REF_split_123.htm
APACHE-la-REF_split_124.htm
APACHE-la-REF_split_125.htm
APACHE-la-REF_split_126.htm
APACHE-la-REF_split_127.htm
APACHE-la-REF_split_128.htm
APACHE-la-REF_split_129.htm
APACHE-la-REF_split_130.htm
APACHE-la-REF_split_131.htm
APACHE-la-REF_split_132.htm
APACHE-la-REF_split_133.htm
APACHE-la-REF_split_134.htm
APACHE-la-REF_split_135.htm
APACHE-la-REF_split_136.htm
APACHE-la-REF_split_137.htm
APACHE-la-REF_split_138.htm
APACHE-la-REF_split_139.htm
APACHE-la-REF_split_140.htm
APACHE-la-REF_split_141.htm
APACHE-la-REF_split_142.htm
APACHE-la-REF_split_143.htm
APACHE-la-REF_split_144.htm
APACHE-la-REF_split_145.htm
APACHE-la-REF_split_146.htm
APACHE-la-REF_split_147.htm
APACHE-la-REF_split_148.htm
APACHE-la-REF_split_149.htm
APACHE-la-REF_split_150.htm
APACHE-la-REF_split_151.htm
APACHE-la-REF_split_152.htm
APACHE-la-REF_split_153.htm
APACHE-la-REF_split_154.htm
APACHE-la-REF_split_155.htm
APACHE-la-REF_split_156.htm
APACHE-la-REF_split_157.htm
APACHE-la-REF_split_158.htm
APACHE-la-REF_split_159.htm
APACHE-la-REF_split_160.htm
APACHE-la-REF_split_161.htm
APACHE-la-REF_split_162.htm
APACHE-la-REF_split_163.htm
APACHE-la-REF_split_164.htm
APACHE-la-REF_split_165.htm
APACHE-la-REF_split_166.htm
APACHE-la-REF_split_167.htm
APACHE-la-REF_split_168.htm
APACHE-la-REF_split_169.htm
APACHE-la-REF_split_170.htm
APACHE-la-REF_split_171.htm
APACHE-la-REF_split_172.htm
APACHE-la-REF_split_173.htm
APACHE-la-REF_split_174.htm