7.3. Regole da rispettare

Una delle risorse più importanti da offrire a Squid è la memoria RAM, non è infatti fondamentale avere un processore particolarmente veloce e non è da sottovalutare il sottosistema dischi.

7.3.1. Utilizzo della memoria RAM

Squid utilizza la memoria RAM per tenere una traccia della tabella degli oggetti[1], un'accesso rapido a questa tabella è fondamentale, il ricorso alla memoria di swap penalizza le prestazioni di Squid sino a renderlo inservibile.

Qualsiasi oggetto memorizzato su disco utilizza circa 75 bytes di memoria RAM, la grandezza media di un oggetto è di circa 13 Kb. Utilizzando questi valori è possibile definire uno standard di calcolo in merito al fabbisogno di memoria RAM da parte di Squid.

1GB cache_dir

1.000.000/13

= 76.923,07692 oggetti su disco

75*76.923,07692

= 5.769.230,769 pari a circa 6 MB di RAM

per 1 GB di disk storage Squid richiederà circa 6 MB di RAM per funzionare correttamente

8GB cache_dir

8.000.000/13

= 615.384,6154 oggetti su disco

75*615.384,6154

= 46.153.846,16 pari a circa 48 MB di RAM

per 8 GB di disk storage Squid richiederà circa 48 MB di RAM per funzionare correttamente

7.3.2. Tipo di CPU

Squid non utilizza in maniera intensiva la CPU, solo al momento dell'avviamento la CPU lavora a pieno regime perchè Squid deve verificare la validità gli oggetti contenuti nella cache. Ne consegue che una CPU di vecchia generazione può penalizzare l'accesso agli oggetti presenti nella cache unicamente nei minuti successivi all'avviamento di Squid. Un sistema Pentium 300 Mhz può già essere sufficente per eseguire Squid in piccole realtà aziendali (massimo 50 utenti).

7.3.3. Simmetric Multi Processor (SMP)

L'utilizzo di un sistema multiprocessore non aumenta in modo significativo le performance di Squid in quanto l'applicazione è basata su un processo singolo che non ricorre alla tecnologia SMP[2]. Lievi benefici possono essere ottenuti nel caso si disponga di sistemi di webcache con elevato carico di I/O che utilizzando configurazioni di Disk Storage asincrono (Cfr. la sezione relativa al Disk Storage).

Nel caso volessimo ottenere dei grandi benefici dall'utilizzo di SMP dovremo eseguire istanze multiple di Squid e trovare il sistema di distribuire gli utenti sulle diverse istanze.

7.3.4. Sottosistema dischi e tecnologie

Per quanto concerne il sottositema dischi lo standard su bus SCSI è la soluzione consigliata, a tale riguardo si rammenta che oggi è possibile utilizzare dei sistemi su bus EIDE[3], ATA[4] o SATA[5] che prevedono il collegamento con delle unità a disco molto veloci, queste unità devono essere in grado di supportare il trasfermento dei dati tramite DMA[6] e devono disporre di una capacità di rotazione pari almeno 7.200 rpm. Per bilanciare al meglio le performance di Squid è necessario valutare anche altri fattori a riguardo della scelta delle unità a disco

7.3.5. Sistemi in RAID

A livello progettuale, la soluzione migliore che possiamo proporre al lettore è quella di utilizzare i dischi in RAID[7] Livello 1 per il sistema Operativo e utilizzare uno o più dischi per lo spazio dedicato al disk storage (cache)

la soluzione RAID Livello 5 degrada le prestazioni in quanto lo spazio dedicato al disk storage viene scritto diverse volte in modalità randomica. Questa modalità di scrittura dei dati su disco riduce la velocità e quindi le performance se paragonata con un sistema a disco singolo. Dobbiamo però anche dire che i sistemi RAID garantiscono un livello di stabilità e di affidabilità superiore in quanto sono stati progettati per ridondare delle componenti che sono molto sensibili ai guasti come le unità a disco.

Note

[1]

con il temine oggetto si definisce un valore generico con il quale si identifica qualsiasi documento o altro tipo di dato disponibile via web, le URL (Uniform Resource Locator) solitamente identificano gli oggetti

[2]

SMP è acronimo di Simmetric Multi Processor

[3]

EIDE è acronimo di enhanced IDE

[4]

l'interfaccia ATA viene utilizzata per connettere device di storage come hard disks, DVDs e CD-R/W

[5]

SATA - Serial ATA

[6]

DMA è acronimo di Direct Memory Access

[7]

RAID è l'acronimo di Redundant Array of Inexpensive Disks, si tratta di un metodo che permette l'immagazzinamento delle informazioni su più dischi, usando tecniche come lo striping dei dischi (RAID Livello 0) e il mirroring di dischi (RAID Livello 1) per ottenere ridondanza, bassa latenza e/o banda più elevata in lettura e/o scrittura, e la possibilità di recupero delle informazioni dopo la rottura di un disco, sono stati definiti 6 diversi tipi di configurazioni RAID.