Ostatnio zajmowałem się przygotowaniem różnych katalogów do dodatkowej archiwizacji w systemie Linux (chodzi o pliki z lokalizacji /var/log/) zawierające archiwum raportów wykonywanych operacji w systemie i działających programach (często stanowiących serwery usług np. www). Jako, że często używam archiwizacji do formatu RAR postanowiłem sprawdzić czy i w tym wypadku się to sprawdzi.
Test wykonałem w systemie Debian 11 (jądro Linux 5.10.0-13-amd64), na systemie z 2 procesorami Xeon E5-2630L v2, wyposażonym w 64GB pamięci RAM i dysk SSD (SATA).
Najpierw utworzyłem archiwum tar całego katalogu /var/log za pomocą komendy "time tar -pcf log.tar /var/log". Utworzone archiwum zajmuje na dysku 1,7GB. Poniżej wyniki wykonane tymi komendami:
archiwizacja rar (zarejestrowany v 6.12, ze strony producenta): time rar a -m5 -ma5 -md64m -mt24 -r /log.rar /log.tar
archiwizacja bzip2 (v 1.0.8, zainstalowany za pomocą apt): time bzip2 -k -z -9 log.tar
archiwizacja lbzip2 (v 2.5, zainstalowany za pomocą apt): time lbzip2 -k -z -9 log.tar
Komenda time pozwala określić czas jaki dana komenda wykorzystała do działania. Oto wyniki:
Archiwum (nazwa pliku) | Czas tworzenia archiwum (sekundy) | Rozmiar pliku (KB) |
log.tar | 2,64 | 1758197 |
log.rar | 36,87 | 276366 |
log.tar.bz2 (bzip2) | 313,06 | 275410 |
log.tar.bz2 (Lbzip2) | 7,83 | 274947 |
Jak widać, najlepiej wypada archiwizacja do pliku bz2, za pomocą lbzip2 (czyli implementacji bzip2 zdolnej do wykorzystywania wielu rdzeni, stąd duże przyspieszenie).