ArtigosDestaque

Compressão: Lrzip

Introdução

Este é um artigo sobre uma nova ferramenta em Linux que tem por nome Lrzip.
Novo, num sentido alargado, porque já vai na versão 0.6 e os métodos que pode usar para compressão já existiam no passado.

No entanto, é uma ferramenta que melhorou bastante na última release, usa pelo menos um método não muito conhecido e tem como objectivos uma grande compressão em ficheiros grandes e aproveitar o máximo de recursos que a máquina tem.
A compressão de grandes ficheiros está no nome “Long Range ZIP“.

Lrzip funciona de uma maneira parecida a rzip, que também incluo neste artigo, pelo facto de fazer duas passagens pelo ficheiro que se quer comprimir, mas ao contrário do rzip, o lrzip não tem a limitação de 900 MB no primeiro passo para encontrar informação duplicada e este limite pode ser maior que a memória que o computador tem.
No segundo passo, o rzip comprime em bzip2, enquanto o lrzip torna-se um “canivete suíço” ao poder usar bzip2, lzo, lzma e zpaq.

De referir também que o autor do lrzip é o um developer do kernel, conhecido por ter criado o scheduler Linux de processador BFS, que apesar de não estar incorporado no kernel, estou a usar no sistema de testes.

Por último, de referir que estou a testar compressores genéricos “lossless” e não especializados, como pngout para os ficheiros png e também não tenho em conta se são arquivadores ou não, visto que usei o tar antes das compressões.

 

Hardware utilizado nos testes

O hardware utilizado neste teste pode ser considerado banal ou normal e que é uma solução que está acessível a grande parte das pessoas.
Na verdade, não tive grande escolha no hardware usado para este benchmark, mas olhando pelo lado positivo, não uso nada de exótico.

Resumindo, é um Intel Core 2 Duo, 4 GB de Ram e um disco de portátil de 5400 rotações.
Alguns benchmarks, têm melhores resultados com melhor hardware, como é o caso do lrzip, mas é um facto que não posso mudar.

Sei perfeitamente que em muitos testes fico limitado pelo processador, tamanho da memória RAM e acesso ao disco. É algo que fica como aviso a quem ler este texto.

Aqui ficam os detalhes:

nemesis11@debian1:~/$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                2
Thread(s) per core:    1
Core(s) per socket:    2
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 15
Stepping:              13
CPU MHz:               1995.078
L1d cache:             32K
L1i cache:             32K
L2 cache:              2048K
nemesis11@debian1:/$ cat /proc/meminfo
MemTotal:        3961220 kB
SwapTotal:        976892 kB
Hugepagesize:       2048 kB
DirectMap4k:        8192 kB
DirectMap2M:     4087808 kB
nemesis11@debian1:/# lshw
     *-cpu
          description: CPU
          product: Intel(R) Core(TM)2 Duo CPU     T5870  @ 2.00GHz
          vendor: Intel Corp.
          physical id: 0
          bus info: cpu@0
          version: Intel(R) Core(TM)2 Duo CPU     T5870  @ 2.00GHz
          slot: Intel(R) Genuine processor
          size: 2000MHz
          capacity: 2GHz
          width: 64 bits
          clock: 200MHz
          capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce
cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr
sse sse2 ss ht tm pbe syscall nx x86-64 constant_tsc arch_perfmon
pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2
ssse3 cx16 xtpr pdcm lahf_lm ida
        *-cache:0
             description: L2 cache
             physical id: 1
             slot: Internal Cache
             size: 2MiB
             capacity: 2MiB
             capabilities: asynchronous internal write-back unified
        *-cache:1
             description: L1 cache
             physical id: 3
             slot: Internal Cache
             size: 32KiB
             capacity: 32KiB
             capabilities: asynchronous internal write-back data
     *-cache
          description: L1 cache
          physical id: 2
          slot: Internal Cache
          size: 32KiB
          capacity: 32KiB
          capabilities: asynchronous internal write-back instruction
     *-memory
          description: System Memory
          physical id: 4
          slot: System board or motherboard
          size: 4GiB
        *-bank:0
             description: SODIMM DDR2 Synchronous 667 MHz (1.5 ns)
             product: M2N2G64TU8HD5B-3C
             vendor: Nanya
             physical id: 0
             serial: D4C60A5A
             slot: Top
             size: 2GiB
             width: 64 bits
             clock: 667MHz (1.5ns)
        *-bank:1
             description: SODIMM DDR2 Synchronous 667 MHz (1.5 ns)
             product: M2N2G64TU8HD5B-3C
             vendor: Nanya
             physical id: 1
             serial: E1C60A5A
             slot: Bottom
             size: 2GiB
             width: 64 bits
             clock: 667MHz (1.5ns)
        *-storage
             description: SATA controller
             product: ICH9M/M-E SATA AHCI Controller
             vendor: Intel Corporation
             physical id: 1f.2
             bus info: pci@0000:00:1f.2
             logical name: scsi0
             logical name: scsi1
             version: 03
             width: 32 bits
             clock: 66MHz
             capabilities: storage msi pm ahci_1.0 bus_master cap_list
emulated
             configuration: driver=ahci latency=0
             resources: irq:46 ioport:70e8(size=8) ioport:70fc(size=4)
ioport:70e0(size=8) ioport:70f8(size=4) ioport:7000(size=32)
memory:d8904000-d89047ff
        *-disk
             description: ATA Disk
             product: WDC WD2500BEVT-6
             vendor: Western Digital
             physical id: 0
             bus info: scsi@0:0.0.0
             logical name: /dev/sda
             version: 13.0
             serial: WD-WXEX08RR8584
             size: 232GiB (250GB)
             capabilities: partitioned partitioned:dos
             configuration: ansiversion=5 signature=ba01319f
        *-volume:3
             description: EXT4 volume
             vendor: Linux
             physical id: 4
             bus info: scsi@0:0.0.0,4
             logical name: /dev/sda4
             logical name: /
             version: 1.0
             serial: 734c793b-65d6-4d85-9550-bfde482a5269
             size: 230GiB
             capacity: 230GiB
             capabilities: primary journaled extended_attributes
large_files huge_files dir_nlink recover extents ext4
ext2 initialized
             configuration: created=2011-04-02 11:01:36
filesystem=ext4 lastmountpoint=/ modified=2011-05-18
08:34:26 mount.fstype=ext4 mount.options=rw,noatime,
errors=remount-ro,user_xattr,acl,barrier=1,data=ordered
mounted=2011-06-12 10:34:32 state=mounted

1 2 3 4Página seguinte

Artigos Relacionados

Botão Voltar ao Topo