Note sulla compressione dei file per la trasmissione
I file contenenti i dati di aggiornamento viaggiano in un formato compresso. In una fase di aggiornamento ogni server deve provvedere a comprimere un file e a decomprimerne N-1 (se N e' il numero dei server che compongono il sistema).
Motivo principale di questa scelta e' velocizzare la trasmissione dei dati da una macchina all' altra.
E' indispensabile, pero', che le operazioni riguardanti la compressione e in particolare modo la decompressione non influiscano eccessivamente sulle prestazioni del sistema, rubando risorse alla CPU. Un processore dedicato che affianca la tradizionale CPU sarebbe una soluzione ideale.
In un reale sistema adibito a Usenet in cui un feed completo di binari oscilla tra i 30 e i 40 Gigabyte al giorno la scelta di utilizzare un compressore e' vantaggiosa solo nel caso di un nodo foglia; qui, dove tutti i server si scambiano la stessa quantità' di dati e' necessario limitare il numero di macchine che compongono la rete.
Alcuni dati...
Su un Intel Pentium 200Mhz MMX con 64 Mb Edo Ram, considerando tre file campione (puro testo, niente binari) per un totale di 4,920,277 bytes i risultati migliori sulla velocita' sono:
Nome programma | Tempo compress. (s) | Tempo decompress (s) | Percentuale compress. |
IMP 1.01 | 16.07 | 4.37 | 77.9 |
LZOP 0.94w -9 | 30.69 | 0.83 | 62.8 |
LZOP 0.94w | 1.41 | 0.87 | 46.9 |
( Fonte ACT 2.0 Archive Comparison Test by Jeff Gilchrist )
Non ho trovato informazioni per quanto riguarda le prestazioni con file di grossa dimensione.
...e un paio di calcoli
Sono comunque possibili, sotto ragionevoli approssimazioni, alcuni calcoli:
Gb in ingresso al server | (al giorno) | 5 |
Numero aggiornamenti (in 24h) | 4 |
||||||
Capacita' del collegamento (bps) | 5000000 |
|||||||||
Numero di server | 6 |
|||||||||
Tempo compress (s/M) | 3 |
Tempo decompress (s/M) | 0,4 |
% Compressione | 50 |
|||||
secondi tot | ore | minuti | ||||||||
Normale | 21474 |
5 |
57 |
ok | ||||||
Con Compress. | 17137 |
4 |
45 |
ok | ||||||
Gb/24h |
Agg/24h |
Cap (bps) | N server | Normale | Compress | Rif | T compr | T decompr | % | Vantaggio (s) |
5 |
5 |
5000000 |
6 |
17179 |
13709 |
17280 |
3 |
0,4 |
50 |
3470 |
5 |
5 |
5000000 |
5 |
13743 |
11582 |
17280 |
3 |
0,4 |
50 |
2161 |
5 |
5 |
5000000 |
4 |
10307 |
9454 |
17280 |
3 |
0,4 |
50 |
853 |
5 |
5 |
5000000 |
3 |
6871 |
7327 |
17280 |
3 |
0,4 |
50 |
-456 |
Con 3 server non risulta piu' conveniente la compressione | ||||||||||
5 |
5 |
6000000 |
7 |
17179 |
14119 |
17280 |
3 |
0,4 |
50 |
3060 |
5 |
5 |
6000000 |
6 |
14316 |
12278 |
17280 |
3 |
0,4 |
50 |
2038 |
5 |
5 |
6000000 |
5 |
11453 |
10437 |
17280 |
3 |
0,4 |
50 |
1016 |
5 |
5 |
6000000 |
4 |
8589 |
8595 |
17280 |
3 |
0,4 |
50 |
-6 |
5 |
5 |
6000000 |
3 |
5726 |
6754 |
17280 |
3 |
0,4 |
50 |
-1028 |
Aumentando la banda disponibile peggiorano le prestazioni | ||||||||||
5 |
5 |
6000000 |
6 |
14316 |
16374 |
17280 |
4 |
1 |
50 |
-2058 |
Un valore basso del tempo di decompressione e' fondamentale |