Como o bzip2 alega compactar melhor (em tamanho), decidi usá-lo. O servidor de trabalho pode oferecer 24 CPUs (virtuais) (4 reais X5650 a 2,67GHz) - e, portanto, decidi procurar variantes paralelas.
Usando debian stable
- desculpe, mas encontrei as melhores correspondências aqui no askubuntu - decidi dar uma olhada mais de perto pbzip2
e lbzip2
.
Mas o que selecionar? No atual estábulo pbzip2
está na versão 1.1.1-1
e lbzip2
na versão 0.23-1
. Isso pode tender cosmeticamente, pbzip2
mas lbzip2
diz que é mais rápido em computadores de núcleo único. Por outro lado, pbzip2
afirma ser completamente compatível com bzip2 v1.0.2
.
Além disso, tenho alguns valores de tempo de um grande trabalho local:
Usandolbzip2
Command being timed: "tar -cjf /tmp/mapleTAsicherung.lbzip2.tar /bin /etc /lib /lib32 /opt /sbin /selinux /usr"
User time (seconds): 2134.32
System time (seconds): 39.24
Percent of CPU this job got: 2099%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:43.51
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1509088
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 1054467
Voluntary context switches: 153901
Involuntary context switches: 235285
Swaps: 0
File system inputs: 0
File system outputs: 3460632
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Usando pbzip2
Command being timed: "tar -cjf /tmp/mapleTAsicherung.pbzip2.tar /bin /etc /lib /lib32 /opt /sbin /selinux /usr"
User time (seconds): 3158.18
System time (seconds): 59.80
Percent of CPU this job got: 2095%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:33.56
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1436320
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 477683
Voluntary context switches: 151326
Involuntary context switches: 339246
Swaps: 0
File system inputs: 0
File system outputs: 3460536
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
O que se deve usar? Quais são as principais diferenças? No momento eu tendem a lbzip2
.
fonte
Respostas:
Aqui está uma idéia básica de como avaliá-los.
Pegue um tarball grande do tipo com o qual você costuma trabalhar. Comprima-o com bzip2, pbzip2, lbzip2. Meça os tempos (relógio de parede) e salve todas as saídas em arquivos diferentes. Isso fornecerá três vezes e três tamanhos de arquivo.
Em seguida, itere sobre todos os três arquivos de saída (ou seja, as saídas de compactação de bzip2, pbzip2, lbzip2) e descompacte cada um com os três utilitários (bzip2, pbzip2 e lbzip2). Isso lhe dará mais nove vezes.
Execute novamente os doze testes em algum criador de perfil e obtenha um pico de uso de memória (virtual e RSS) para cada um. Novamente, isso produzirá 12 valores. (Se o seu Linux estiver configurado para não comprometer demais, você estará interessado no VSZ. Caso contrário, você se preocupa com o RSS).
Faça uma tabela com 12 linhas para esses pontos de dados - tamanhos compactados col1: 3, tempos de compactação col2: 3/9 tempos de descompactação, itens de pico col3: 12 - e escolha o que melhor combina com você. Você deve levar em consideração a frequência com que comprime e com que frequência descompacta.
Eu uso o lbzip2-0.23, mas o escrevi, para que não conte.
Finalmente, não importa qual seja o melhor para você, sempre salve uma soma de verificação do tarball descompactado e verifique o arquivo salvo antes de declarar o backup "concluído".
fonte
Fiz alguns benchmarks de comparação para bzip2 vs pbzip2 e lbzip2, juntamente com lzip e plzip em http://vbtechsupport.com/1614/ . Estou gostando das melhorias de velocidade para o lbzip2, desde que você tenha memória suficiente.
fonte