back , codice , home


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            

back , codice , home