Como melhorar o tempo de execução do rsync no OmniOS (baseado em illumos)?

2

Estou testando illumos em algumas de suas variantes, atualmente OmniOS.

Como eu estava comparando os processos ligados a io, eu vi que rsync era significativamente mais lento em relação à minha referência, FreeBSD 12-CURRENT.

Usando o mesmo hardware, o mesmo comando com os mesmos discos de origem e de destino:

No OmniOS r151026 eu medi,

test@omniosce:~# time rsync -aPt /zarc/images /home/test/

real    17m25.428s
user    28m33.792s
sys     2m46.217s

No FreeBSD 12-CURRENT:

test@freebsd:~ % time rsync -aPt /zarc/images /home/test/

374.651u 464.028s 11:30.63 121.4%   567+210k 791583+780083io 2pf+0w

(Note que o FreeBSD 12-CURRENT contém opções de depuração, portanto, ele é executado mais lentamente do que a futura versão do RELEASE).

  • Notei que, no FreeBSD, rsync estava sendo executado como 3 processos, todos com nice=0 , dois deles consistentemente usando 50% a 70% de tempo de CPU .

  • No OmniOS, rsync também estava sendo executado como 3 processos, também com nice=0 , mas cada um nunca mais do que 3% .

O uso da CPU é o motivo pelo qual o tempo de execução no mesmo hardware é tão diferente no FreeBSD e nos ilumos?

Se sim, já que nice foi o mesmo em ambos os sistemas operacionais, por que os illumos não permitem maior uso da CPU?

Como se pode melhorar o tempo de execução de rsync no SO baseado em illumos?

Obrigado antecipadamente.

2018-06-02 edição:

  • Pergunta esclarecida para torná-lo mais específico. Graças a @ rui-f-ribeiro

  • Respondendo ao @roaima:

    1. Os sistemas de arquivos de origem e destino são discos locais
    2. Esta não é uma corrida única para cada sistema operacional, tenho testado essa situação intrigante com muitas repetições
    3. No teste de sempre, certifico-me de que a árvore de diretórios de destino esteja completamente vazia de arquivos correspondentes àqueles na origem
por gsl 02.06.2018 / 11:07

1 resposta

2

O mistério finalmente foi resolvido, ao alternar o OmniOS rsync para 64-bit e permitir a otimização . Isso mais que dobra a velocidade do código de checksum.

Agora, considerando exatamente o mesmo hardware, o rysnc no OmniOS é até um pouco mais rápido que o do FreeBSD.

Obrigado a todos aqui, e graças aos excelentes desenvolvedores OmniOS que ajudaram tão rápida e exaustivamente.

    
por 15.06.2018 / 14:30