Rubrique précédente: LOAD : générateur de charge

Rubrique suivante: MTA - Mail Transport Agent


SQUID : proxy SQUID

Dernière version : 2.0.2-1

SQUID : Serveur proxy

Aperçu rapide

Catalogue

Système

Catégorie

Misc. Appliances

Volumes d'utilisateur

Oui

Min. mémoire

96M

SE

Linux

Contraintes

non

Questions/commentaires

Poser une question sur le forum

Présentation fonctionnelle

SQUID est une appliance de proxy inverse ou de transfert en cache. SQUID fait office d'agent en acceptant les requêtes HTTP des clients sur son terminal in et en les transférant au serveur approprié connecté au terminal out. Il stocke une copie des données renvoyées dans une mémoire et dans un cache sur le disque et dans celui-ci. Lorsque les mêmes données sont demandées plusieurs fois, les données mises en cache sont renvoyées au client, accélérant ainsi leur accès et diminuant la charge sur le serveur source.

SQUID prend en charge deux modes de fonctionnement : proxy et accélérateur Web.

Mode proxy

En mode proxy, SQUID fait office de proxy de transfert en cache et est généralement installé entre un ou plusieurs clients et Internet. Il garde en local des copies de données fréquemment demandées et renvoie du contenu mis en cache le cas échéant, accélérant ainsi les demandes de service et réduisant la bande passante en amont.

Mode Accélérateur Web

En mode accélérateur Web, SQUID fait office de proxy inverse en cache et est généralement installé avant un ou plusieurs serveurs Web. Tout le trafic ciblé sur les serveurs Web passe par SQUID. SQUID garde en local des copies de données fréquemment demandées et renvoie du contenu mis en cache le cas échéant, diminuant ainsi le temps de réponse et la charge sur les serveurs principaux.

Ressources

Ressource

Minimum

Maximum

Valeur par défaut

Testé

UC

0.05

2

0.2

2

Mémoire

96 Mo

4 Go

256 Mo

4 Go

Bande passante

1 Mbit/s

2 Gbits/s

250 Mbits/s

1,5 Gbit/s

Capacité de mémoire requise pour SQUID

La quantité de mémoire requise par SQUID dépend de la taille du volume de cache et du nombre de requêtes simultanées. SQUID utilise jusqu'à 10 mégaoctets de mémoire pour indexer 1 gigaoctet de stockage de cache. Ainsi, si vous utilisez 100 Go de volume de cache, vous aurez besoin d'1 Go de mémoire supplémentaire. De même, une certaine quantité de mémoire est utilisée pour traiter chaque connexion. SQUID utilise jusqu'à 20 mégaoctets de mémoire pour traiter 1000 connexions simultanées. Ainsi, si 5000 connexions simultanées sont prévues, la mémoire de SQUID doit être augmentée de 100 Mo.

Important : Si la quantité de mémoire disponible n'est pas suffisante, SQUID risque de ne pas fonctionner correctement.

Terminaux

name

dir

Protocole

description

in

in

HTTP

Accepte les requêtes entrantes.

sortie

sortie

HTTP

Envoie tout le trafic aux serveurs de destination et réceptionne les réponses.

log

sortie

CIFS

Accède à un système de fichiers réseau basé sur CIFS pour le stockage de journaux. Le serveur connecté doit autoriser les connexions anonymes et avoir un partage lecture-écriture nommé share. Si ce terminal n'est pas utilisé, il peut rester déconnecté.

MON

sortie

CCE

Envoie des statistiques de performances et d'utilisation des ressources. Si ce terminal n'est pas utilisé, il peut rester déconnecté.

Volumes d'utilisateur

name

description

cache

Volume pour le stockage des fichiers en cache. Ce volume est obligatoire. La taille minimum du volume de cache est de 100 Mo.

Remarques :

Propriétés générales

name

type

description

mode

Chaîne

Mode de fonctionnement. Les valeurs valides sont proxy ou web_accelerator.
proxy - SQUID fonctionne en mode proxy, en agissant comme un proxy de transfert en cache.
web_accelerator - SQUID fonctionne en mode accélérateur Web comme un proxy inverse de mise en cache.
Valeur par défaut : web_accelerator

listen_port

Entier

Port pour accepter les requêtes des clients internes en mode proxy ou des utilisateurs de sites Web externes en mode web_accelerator.
Valeur par défaut : 80

hostname

Chaîne

Nom d'hôte à utiliser dans les messages d'erreur.
Valeur par défaut : localhost

connect_timeout

Entier

Délai en secondes pendant lequel SQUID attend que TCP se connecte au serveur demandé. Passé ce délai, SQUID répond par le message d'erreur "Connection timed out" sur le client.
Valeur par défaut : 30

Propriétés de journalisation

name

type

description

log_enable

Chaîne

Active ou désactive le journal d'accès
Valeur par défaut : no

log_filename

Chaîne

Nom de fichier du journal d'accès, par rapport au système de fichiers accessible sur le terminal de journal. Le nom de fichier peut inclure un chemin d'accès, par exemple, une valeur pour access.log. Le nom du fichier journal devient alors /mnt/log/access.log, tandis qu'une valeur /proxy_logs/squid1_access.log modifie le nom du fichier journal en /mnt/log/proxy_logs/squid1_access.log.
Valeur par défaut : access.log

log_format

Chaîne

Format du journal d'accès.
native - Utilise le format de journalisation natif de SQUID.
httpd - Utilise le format de journalisation httpd.
Valeur par défaut : native

Compteurs personnalisés

L'appliance SQUID signale les compteurs personnalisés suivants via le terminal mon.

Nom du compteur SNMP

Nom du compteur

Description

SQUID-MIB::cacheSysVMsize

SysVMsize

Taille de cache de la mémoire en Ko.

SQUID-MIB::cacheSysStorage

SysStorage

Taille de cache du disque en Ko.

SQUID-MIB::cacheUptime

Uptime

Durée de disponibilité de SQUID en 1/100 de seconde.

SQUID-MIB::cacheSysPageFaults

SysPageFaults

Erreurs de page avec E/S physique.

SQUID-MIB::cacheSysNumReads

SysNumReads

Nombre de lectures E/S HTTP.

SQUID-MIB::cacheMemUsage

MemUsage

Mémoire totale utilisée par SQUID en Ko.

SQUID-MIB::cacheCpuTime

CpuTime

Quantité de secondes d'UC utilisées.

SQUID-MIB::cacheCpuUsage

CpuUsage

Pourcentage de l'utilisation de l'UC.

SQUID-MIB::cacheMaxResSize

MaxResSize

Taille résidente maximum en Ko.

SQUID-MIB::cacheNumObjCount

NumObjCount

Nombre d'objets stockés dans le cache.

SQUID-MIB::cacheCurrentUnlinkRequests

CurrentUnlinkRequests

Requêtes envoyées à unlinkd.

SQUID-MIB::cacheCurrentUnusedFDescrCnt

CurrentUnusedFDescrCnt

Nombre de descripteurs de fichier disponibles.

SQUID-MIB::cacheCurrentResFileDescrCnt

CurrentResFileDescrCnt

Nombre de descripteurs de fichier réservés.

SQUID-MIB::cacheCurrentFileDescrCnt

CurrentFileDescrCnt

Nombre de descripteurs de fichier utilisés.

SQUID-MIB::cacheCurrentFileDescrMax

CurrentFileDescrMax

Nombre maximum de descripteurs de fichier utilisés.

SQUID-MIB::cacheProtoClientHttpRequests

ProtoClientHttpRequests

Nombre de requêtes HTTP reçues.

SQUID-MIB::cacheHttpHits

HttpHits

Nombre de résultats HTTP en cache.

SQUID-MIB::cacheHttpErrors

HttpErrors

Nombre d'erreurs HTTP en cache.

SQUID-MIB::cacheHttpInKb

HttpInKb

Trafic HTTP reçu, en kilo-octets.

SQUID-MIB::cacheHttpOutKb

HttpOutKb

Trafic HTTP envoyé, en kilo-octets.

SQUID-MIB::cacheServerRequests

ServerRequests

Nombre de requêtes du client pour le serveur de cache.

SQUID-MIB::cacheServerErrors

ServerErrors

Toutes les erreurs des requêtes clients pour le serveur de cache

SQUID-MIB::cacheServerInKb

ServerInKb

Trafic entrant dans les serveurs, en kilo-octets.

SQUID-MIB::cacheServerOutKb

ServerOutKb

Trafic sortant des serveurs, en kilo-octets.

SQUID-MIB::cacheClients

Clients

Nombre de clients accédant au cache

SQUID-MIB::cacheHttpAllSvcTime.1

HttpAllSvcTime1

Temps UC exprimé en secondes consacré au traitement des requêtes HTTP (au cours de la dernière minute).

SQUID-MIB::cacheHttpAllSvcTime.5

HttpAllSvcTime5

Temps UC exprimé en secondes consacré au traitement des demandes HTTP (au cours des 5 dernières minutes).

SQUID-MIB::cacheHttpAllSvcTime.60

HttpAllSvcTime60

Temps UC exprimé en secondes consacré au traitement des requêtes HTTP (au cours des 60 dernières minutes).

SQUID-MIB::cacheHttpMissSvcTime.1

HttpMissSvcTime1

Temps UC exprimé en secondes consacré au traitement des absences dans le cache (au cours de la dernière minute).

SQUID-MIB::cacheHttpMissSvcTime.5

HttpMissSvcTime5

Temps UC exprimé en secondes consacré au traitement des absences dans le cache (au cours des 5 dernières minutes).

SQUID-MIB::cacheHttpMissSvcTime.60

HttpMissSvcTime60

Temps UC exprimé en secondes consacré au traitement des absences dans le cache (au cours des 60 dernières minutes).

SQUID-MIB::cacheHttpNmSvcTime.1

HttpNmSvcTime1

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (contenu inchangé) (au cours de la dernière minute).

SQUID-MIB::cacheHttpNmSvcTime.5

HttpNmSvcTime5

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (contenu inchangé) (au cours des 5 dernières minutes).

SQUID-MIB::cacheHttpNmSvcTime.60

HttpNmSvcTime60

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (contenu inchangé) (au cours des 60 dernières minutes).

SQUID-MIB::cacheHttpHitSvcTime.1

HttpHitSvcTime1

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (au cours de la dernière minute).

SQUID-MIB::cacheHttpHitSvcTime.5

HttpHitSvcTime5

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (au cours des 5 dernières minutes).

SQUID-MIB::cacheHttpHitSvcTime.60

HttpHitSvcTime60

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (au cours des 60 dernières minutes).

SQUID-MIB::cacheDnsSvcTime.1

DnsSvcTime1

Temps UC exprimé en secondes consacré au traitement des requêtes DNS (au cours de la dernière minute).

SQUID-MIB::cacheDnsSvcTime.5

DnsSvcTime5

Temps UC exprimé en secondes consacré au traitement des demandes DNS (au cours des 5 dernières minutes).

SQUID-MIB::cacheDnsSvcTime.60

DnsSvcTime60

Temps UC exprimé en secondes consacré au traitement des demandes DNS (au cours des 5 dernières minutes).

SQUID-MIB::cacheRequestHitRatio.1

RequestHitRatio1

Taux de réussite des requêtes exprimé en pourcentage (au cours de la dernière minute), sur une échelle de 0 à 100.

SQUID-MIB::cacheRequestHitRatio.5

RequestHitRatio5

Taux de réussite des requêtes exprimé en pourcentage (au cours des 5 dernières minutes), sur une échelle de 0 à 100

SQUID-MIB::cacheRequestHitRatio.60

RequestHitRatio60

Taux de réussite des requêtes exprimé en pourcentage (au cours des 60 dernières minutes), sur une échelle de 0 à 100.

SQUID-MIB::cacheRequestByteRatio.1

RequestByteRatio1

Taux d'utilisation des octets exprimé en pourcentage (au cours de la dernière minute), sur une échelle de 0 à 100.

SQUID-MIB::cacheRequestByteRatio.5

RequestByteRatio5

Taux d'utilisation des octets exprimé en pourcentage (au cours des 5 dernières minutes), sur une échelle de 0 à 100.

SQUID-MIB::cacheRequestByteRatio.60

RequestByteRatio60

Taux d'utilisation des octets exprimé en pourcentage (au cours des 60 dernières minutes), sur une échelle de 0 à 100.

SQUID-MIB::cacheHttpNhSvcTime.1

HttpNhSvcTime1

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (rafraîchissement du contenu) (au cours de la dernière minute).

SQUID-MIB::cacheHttpNhSvcTime.5

HttpNhSvcTime5

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (rafraîchissement du contenu) (au cours des 5 dernières minutes).

SQUID-MIB::cacheHttpNhSvcTime.60

HttpNhSvcTime60

Temps UC exprimé en secondes consacré au traitement des présences dans le cache (rafraîchissement du contenu) (au cours des 60 dernières minutes).

SQUID-MIB::cacheIpEntries

IpEntries

Entrées de cache IP.

SQUID-MIB::cacheIpRequests

IpRequests

Nombre de requêtes de cache IP.

SQUID-MIB::cacheIpHits

IpHits

Nombre de présences dans le cache IP.

SQUID-MIB::cacheIpPendingHits

IpPendingHits

Nombre de présences en attente dans le cache IP.

SQUID-MIB::cacheIpNegativeHits

IpNegativeHits

Nombre de présences négatives dans le cache IP.

SQUID-MIB::cacheIpMisses

IpMisses

Nombre d'absences dans le cache IP.

SQUID-MIB::cacheBlockingGetHostByName

BlockingGetHostByName

Nombre de requêtes de blocage gethostbyname.

SQUID-MIB::cacheAttemptReleaseLckEntries

AttemptReleaseLckEntries

Nombre de tentatives de déverrouillage des entrées de cache IP verrouillées.

SQUID-MIB::cacheFqdnEntries

FqdnEntries

Entrées de cache FQDN.

SQUID-MIB::cacheFqdnRequests

FqdnRequests

Nombre de requêtes de cache FQDN.

SQUID-MIB::cacheFqdnHits

FqdnHits

Nombre de présences dans le cache FQDN.

SQUID-MIB::cacheFqdnPendingHits

FqdnPendingHits

Nombre de présences en attente dans le cache FQDN.

SQUID-MIB::cacheFqdnNegativeHits

FqdnNegativeHits

Nombre de présences négatives dans le cache FQDN.

SQUID-MIB::cacheFqdnMisses

FqdnMisses

Nombre d'absences dans le cache FQDN.

SQUID-MIB::cacheBlockingGetHostByAddr

BlockingGetHostByAddr

Nombre de requêtes de blocage gethostbyaddr.

SQUID-MIB::cacheDnsRequests

DnsRequests

Nombre de requêtes dnsserver externes.

SQUID-MIB::cacheDnsReplies

DnsReplies

Nombre de réponses dnsserver externes.

SQUID-MIB::cacheDnsNumberServers

DnsNumberServers

Nombre de traitements dnsserver externes.

SQUID-MIB::cachePeerRtt

PeerRtt

Dernière durée connue des boucles vers l'homologue (en millisecondes).

Messages d'erreur

En cas d'échec de démarrage de l'appliance, les erreurs suivantes peuvent être consignées dans le journal système :

Message d'erreur

Description

Cache volume is not accessible.

L'appliance ne peut pas accéder au volume de cache, probablement parce que le système de fichiers est endommagé.

Access log is enabled, but log terminal is not connected.

Le terminal de journal n'est pas connecté, mais log_enable est défini sur Oui.

Failed to run squid.

L'appliance ne peut pas démarrer peut-être en raison d'une erreur dans la configuration définie par l'utilisateur.

Performances

Le tableau ci-dessous contient des résultats d'évaluation de performances exprimés en requêtes par seconde (rps) obtenus lorsque la journalisation est désactivée. Les performances SQUID peuvent se détériorer lorsque la journalisation est activée. Les performances ont été évaluées à l'aide de l'utilitaire Apache Benchmark fourni avec Apache Web Server 2.0 et 2.2. Un complément d'informations sur Apache Benchmark est disponible sur le site Web d'Apache. Les tests d'évaluation des performances ont été effectués à l'aide des paramètres suivants : bw=500M mem=2G cpu=2.

Cache HIT

simultanéité

rps

simultanéité sur 1 client

1500-1800 rps

simultanéité sur 10 clients

5800-6200 rps

simultanéité sur 100 clients

7400-7800 rps

simultanéité sur 500 clients

5300-5500 rps

simultanéité sur 1000 clients

5300-5500 rps

Cache MISS

simultanéité

rps

simultanéité sur 1 client

700-800 rps

simultanéité sur 10 clients

2000-2200 rps

simultanéité sur 100 clients

1900-2100 rps

simultanéité sur 500 clients

1800-2000 rps

simultanéité sur 1000 clients

1600-1800 rps

Mode Accélérateur Web

SQUID est utilisé pour réduire la charge sur un serveur AppServer en traitant tous les documents statiques. Remarque : Si les applications Java ont définies sur Expires: HTTP pour les documents générés, SQUID les traite pendant leur durée de vie.

Appliances en cours d'utilisation :

Exemple de configuration de propriété :

Nom de propriété

Value (Valeur)

Commentaires

mode

web_accelerator

SQUID fonctionne en mode Accélérateur Web comme un proxy inverse de mise en cache.

listen_port

80

Port par défaut pour les requêtes HTTP.

hostname

www.host.com

Nom d'hôte utilisé dans des messages d'erreur.

Mode Accélérateur Web : Application avec de nombreux serveurs Web

SQUID est utilisé pour accélérer la vitesse de nombreux serveurs Web. Dans cet exemple, une appliance URLSW distribue des requêtes à différents serveurs Web par URL. Appliances en cours d'utilisation :

Exemple de configuration de propriété pour SQUID :

Nom de propriété

Value (Valeur)

Commentaires

mode

web_accelerator

SQUID fonctionne en mode Accélérateur Web comme un proxy inverse de mise en cache.

listen_port

80

Port par défaut pour les requêtes HTTP.

hostname

www.host1.com

Nom d'hôte utilisé dans des messages d'erreur.

Configuration du commutateur :

Nom de propriété

Value (Valeur)

Commentaires

out1_type

hostname

out1_value

host1.com

Les requêtes pour host1.com sont traitées par server1.

out2_type

hostname

out2_value

host2.com

Les requêtes pour host2.com sont traitées par server2.

out3_type

hostname

out3_value

host3.com

Les requêtes pour host3.com sont traitées par server3.

out4_type

hostname

out4_value

host4.com

Les requêtes pour host4.com sont traitées par server4.

Mode Proxy

Pour les tâches de traitement de contenu, SQUID peut accélérer la récupération des requêtes en double en réduisant la charge sur les serveurs Web cibles ainsi que l'utilisation de la bande passante. Dans cet exemple, si du contenu Internet, comme une page Web, un document PDF ou une image, a déjà été demandé par crawler1, d'autres robots d'indexation reçoivent des résultats mis en cache pour le même contenu.

Mode proxy

Appliances en cours d'utilisation :

Exemple de configuration de propriété :

Nom de propriété

Value (Valeur)

Commentaires

mode

proxy

SQUID fonctionne en mode proxy, en agissant comme un proxy de transfert en cache.

listen_port

3128

Port sur quel SQUID écoute les requêtes HTTP.

hostname

proxy.enterprise.local

Nom d'hôte utilisé dans des messages d'erreur.

Commentaires

Logiciels Open Source et tiers utilisés au sein de l'appliance

SQUID utilise les packages Open Source tiers suivants en plus des packages Open Source tiers utilisés par sa classe de base LUX5.

Logiciel

Version

Modifié

Licence

Commentaires

net-snmp

5.3.2.2-9.el5_5.1

Non

BSD

N/D

net-snmp-libs

5.3.2.2-9.el5_5.1

Non

BSD

N/D

net-snmp-utils

5.3.2.2-9.el5_5.1

Non

BSD

N/D

samba-client

3.0.33-3.29.el5_5.1

Non

GPLv2

N/D

samba-common

3.0.33-3.29.el5_5.1

Non

GPLv2

N/D

libsmbclient

3.0.33-3.29.el5_5.1

Non

GPLv2

N/D

squid

3.1.8-1.el5

Non

GPLv2

N/D

lm_sensors

2.10.7-9.el5

Non

GPLv2

N/D

dmidecode

2.10-3.el5

Non

GPLv2

N/D

perl-DBI

1.52-2.el5

Non

GPLv2

N/D