29.2. Configuration système requise

La chose la plus importante consiste à déterminer la charge maximale du réseau que le système doit supporter. De ce fait, il est important de veiller davantage aux charges maximales. Elles peuvent en effet être plus quatre fois supérieures à la moyenne quotidienne. En cas de doute, il est préférable de surestimer la configuration système requise, car le fonctionnement de Squid près de la limite de ses capacités peut se traduire par une perte de qualité de service. Les sections qui suivent indiquent les facteurs du système par ordre d'importance.

29.2.1. Disques durs

La vitesse joue un rôle important dans le processus de mise en cache. Ce facteur mérite donc une attention particulière. Pour les disques durs, ce paramètre est décrit comme le temps de recherche aléatoire, en millisecondes. Du fait que les blocs de données lus ou écrits par Squid sur le disque dur tendent à être assez petits, le temps de recherche du disque dur est plus important que son débit de données. Pour un proxy, les disques durs ayant des vitesses de rotation élevées sont probablement le choix le mieux approprié, car ils permettent à la tête de lecture-écriture de se positionner plus rapidement sur le point recherché. Une possibilité d'accélérer le système consiste à utiliser plusieurs disques simultanément ou à employer des array RAID de segmentation.

29.2.2. Taille du cache disque

Dans un petit cache, la probabilité d'un HIT (de trouver l'objet demandé déjà présent) est faible, car le cache se remplit facilement et les objets les moins demandés sont remplacés par les plus récents. Si, par exemple 1 Go est disponible pour le cache et si les utilisateurs n'utilisent que 10 Mo par jour pour surfer, il faut plus de cent jours pour remplir le cache.

Le moyen le plus simple pour déterminer la taille du cache nécessaire consiste à considérer le taux de transfert maximal de la connexion. Avec une connexion à 1 Mbps, le taux de transfert maximal est de 125 Ko/s. Si tout ce trafic arrive dans le cache, en une heure 450 Mo sont ajoutés. En supposant que tout ce trafic soit généré en seulement huit heures de travail, cela correspond à 3,6 Go par jour. Du fait que la connexion n'est normalement pas utilisée à sa limite de volume supérieure, on peut supposer que le volume total de données gérées par le cache est de 2 Go environ. Un espace disque de 2 Go est donc nécessaire dans cet exemple pour que Squid conserve une journée de données de navigation en cache.

29.2.3. Mémoire vive

La quantité de mémoire (RAM) requise par Squid est directement liée au nombre d'objets dans le cache. En outre, Squid stocke les références des objets du cache et les objets fréquemment demandés dans la mémoire principale pour en accélérer la récupération. La mémoire vive (RAM) est beaucoup plus rapide qu'un disque dur.

De plus, il existe d'autres données que Squid doit conserver en mémoire, notamment une table avec toutes les adresses IP gérées, un cache de nom de domaine exact, les objets les plus fréquemment demandés, les listes de contrôle d'accès, les tampons, etc.

Il est très important de disposer de suffisamment de mémoire pour le processus Squid, car les performances du système sont fortement réduites s'il doit être échangé sur le disque. L'outil cachemgr.cgi peut être utilisé pour la gestion de la mémoire cache. Cet outil est présenté à la Section 29.6, « cachemgr.cgi ». Les sites exposés à un énorme trafic réseau doivent envisager d'utiliser un système AMD64 ou Intel EM64T avec plus de 4 Go de mémoire.

29.2.4. Unité centrale

Squid n'est pas un programme qui nécessite une utilisation intensive de l'unité centrale. La charge du processeur n'augmente que lorsque le contenu du cache est chargé ou vérifié. L'utilisation d'une machine multiprocesseurs n'améliore pas les performances du système. Pour augmenter l'efficacité, il est préférable d'investir dans des disques plus rapides ou d'ajouter de la mémoire.