Mateus Müller

O carinha do Linux

25 out. 2018

Zstandard – O algoritmo de compressão utilizado pelo Facebook

Acho fascinante essa coisa de conseguir comprimir o tamanho de um arquivo. Cada vez mais, vemos mais algoritmos desenvolvidos por reais gênios da computação, e que, consequentemente, conseguem diminuir mais ainda o tamanho de um arquivo. Neste artigo, vamos falar um pouco sobre o Zstandard – O algoritmo de compressão utilizado pelo Facebook e disponível para Linux.

Primeiramente, vamos falar um pouco da parte histórica e algumas curiosidades! 🙂

Em suma, este algoritmo foi desenvolvido por Yann Collet, um dos programadores que atua no Facebook. Este código está sendo amplamente utilizado em diversos projetos, muitos deles conhecidos por nós, como: Kernel Linux, Amazon Red Shift, Hadoop, Redis, Ceph, Borg, etc. Inclusive, o Zstandard é usado nos sistemas de arquivos Btrfs e Squashfs. Foi também testado no OpenZFS.

Além disso, este projeto se tornou tão utilizado e conhecido, que acabou sendo criado uma RFC somente para o Zstandard – RFC 8478. Outra curiosidade bacana é que o próprio Ubuntu quer colocar como algoritmo de compressão padrão que, depois de testes, foi notado um aumento na velocidade de instalação de 10%.

Mas, dá para utilizar isso no Linux? Dá! Basta instalar o front-end zstd.

Como instalar o algoritmo de compressão Zstandard no Linux?

Primeiramente, para utilizar o Zstandard, temos que instalar o zstd. Talvez, ele já esteja instalado em sua distribuição. Para instalar, apenas use o gerenciador de pacotes da sua distribuição, que certamente conterá este pacote na versão homologada.

Para Debian e derivados:

  • $ sudo apt install zstd -y
  • Para Fedora e derivados:

  • $ sudo yum install zstd -y
  • Para Arch e derivados:

  • $ sudo pacman -Sy zstd
  • Como utilizar o utilizar de compressão Zstandard no Linux?

    Então, vamos para alguns exemplos de utilização deste algoritmo.

  • $ zstd nomedoarquivo # Comprimir o arquivo no formato “.zst” padrão
  • $ zstd -d nomedoarquivo.zst # Descomprimir o arquivo “.zst”
  • Zstandard - O algoritmo de compressão utilizado pelo Facebook
    Zstandard -- O algoritmo de compressão utilizado pelo Facebook

    Ademais, é interessante notar que, o zstd tem 19 níveis padrões de compressão de dados. Quanto mais alto o nível, mais ele será reduzido. Entretanto, mais hardware será consumido e mais tempo levará para finalizar o processo.

    Também, é possível usar o modo ultra, que libera mais 3 níveis de compressão, até o nível 22. O nível padrão de compressão é o 3.

  • $ zstd -6 --rm arquivo # Comprime no nível 6 e remove o arquivo depois de finalizado
  • $ zstd --ultra -22 arquivo # Comprime no nível máximo 22
  • Zstandard - O algoritmo de compressão utilizado pelo Facebook
    Zstandard -- O algoritmo de compressão utilizado pelo Facebook

    Note que, já diminuiu bem mais que a primeira compressão. Uma outra função interessante é para ver informações do arquivo após a compressão.

  • $ zstd -l arquivo.zst
  • Também, é possível fazer um benchmark para comparar os níveis de compressão.

  • $ zstd -b1 arquivo
  • Zstandard - O algoritmo de compressão utilizado pelo Facebook
    Zstandard -- O algoritmo de compressão utilizado pelo Facebook

    Além disso, existem milhares de outras opções que podem ser encontradas no manual do próprio zstd.

  • $ man zstd
  • $ zstd -h
  • Espero que tenha gostado desta dica!

    Não esqueça de nos seguir no Instagram para receber os últimos conteúdos!

    Participe dos nossos grupos no Telegram e Facebook! 🙂

    Veja também:

    Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

    Comentários Disqus