0 Compartilhamentos 185 Views

Por que NÃO usar gzip de forma generalizada no servidor

29 de outubro de 2014

Fazer ajuste fino do servidor é fundamental para quem administra sites com tráfego pesado. Usar e abusar do poder do cache e salvar banda usando compressão fazem parte do cotidiano dos bons webmasters.

Mas será que você não está exagerando nessa ânsia de comprimir tudo que vê pela frente? gzip pode ser tornar um inimigo da performance, dependendo do caso.

O gzip já está aí há vinte anos, amplamente difundido nos servidores e com um bom suporte do lado dos navegadores. Hoje em dia é possível entregar conteúdo compactado para o usuário e o resultado é descompactado do lado do cliente, economizando banda para todo mundo. O que pode dar errado em uma solução tão popular?

Primeiro, é preciso entender que este conteúdo é comprimido no servidor em tempo real. O cliente solicita os dados e a CPU junta tudo, comprime e envia, em um processo que consome recursos. Não é uma operação muito pesada, mas, em sites com alto tráfego, o consumo de CPU pode impactar a performance do servidor. Principalmente, porque você não precisa comprimir todo o conteúdo.

Existem dois casos, onde aplicar a compressão do gzip não faz o menor sentido, é desnecessária e não compensa o trabalho:

1) Compressão de imagens e PDF

Você não deve permitir que o servidor comprima arquivos de imagem ou PDFs. Nunca. Por quê? Porque eles já estão comprimidos e, se não estão, devolva-os para o editor de imagens ou gerador de PDFs para fazer um trabalho muito melhor que qualquer gzip seria capaz. Na verdade, é possível que a “compactação” do gzip acabe deixando o tamanho dos arquivos maior!

A exceção a esta regra seriam arquivos .SVG. Apesar de serem interpretados como arquivos de imagem, na verdade são instruções em código para geração de imagens. Basicamente, são arquivos de texto e arquivos de texto sempre se beneficiam com compactação gzip.

2) Compressão de arquivos muito pequenos

O tamanho mínimo de um pacote TCP é 1500 bytes. Não importa o tamanho do seu arquivo, ele será dividido em “fatias” de cerca de 1,5 KB e transmitido pela Internet. Então, na prática, pegar um arquivo de 1,3 KB e compactá-lo para 1,0 KB não representa um ganho de 0,3KB. Ele continuará sendo transmitido em um pacote de 1,5 KB aproximadamente.

O ideal, então, é que você restrinja a compactação de arquivos pelo gzip para arquivos com mais de 1,5KB, para não desperdiçar recursos de CPU. Perceba que ferramentas como o Google’s PageSpeed ignoram essa restrição e irão recomendar a compressão generalizada, independente do tamanho.

Vale a pena avaliar também se a compressão de arquivos de 5KB, 10KB realmente compensa, se a perda de processamento no servidor vale o ganho mínimo de banda no processo. Esta recomendação vai depender do seu nível de tráfego, da capacidade da CPU e de suas necessidades.

Você pode se interessar

5 fatos que todo departamento de TI pode aprender com Fortnite
Artigos
7 visualizações
Artigos
7 visualizações

5 fatos que todo departamento de TI pode aprender com Fortnite

Carlos L. A. da Silva - 1 de julho de 2019

O Departamento de TI de uma empresa não é apenas um lugar onde os caras jogam Fortnite o dia inteiro. Grandes desastres podem vir de lá também...

Promoções de Jogos do Final de Semana (28/06)
Notícias
8 visualizações
Notícias
8 visualizações

Promoções de Jogos do Final de Semana (28/06)

Carlos L. A. da Silva - 28 de junho de 2019

Confira as melhores ofertas de jogos de PC para o final de semana.

FIREBASE Database na Prática com JAVASCRIPT PURO // Mão no Código #14
Vídeos
1,655 compartilhamentos6,806 visualizações
Vídeos
1,655 compartilhamentos6,806 visualizações

FIREBASE Database na Prática com JAVASCRIPT PURO // Mão no Código #14

Thais Cardoso de Mello - 27 de junho de 2019

Vamos mostrar na prática pra vocês como é SIMPLES DEMAIS manipular o Realtime Database (noSQL) do Firebase usando JavaScript puro e o SDK "marrrravilhoso" que o pessoal do Google Cloud criou.

Deixe um Comentário

Your email address will not be published.

Mais publicações

Como baixar o novo Windows Terminal
Dicas
18 visualizações
18 visualizações

Como baixar o novo Windows Terminal

Carlos L. A. da Silva - 26 de junho de 2019
Libra: o que sabemos sobre a criptomoeda do Facebook
Artigos
12 visualizações
12 visualizações

Libra: o que sabemos sobre a criptomoeda do Facebook

Carlos L. A. da Silva - 25 de junho de 2019
WebAssembly // Dicionário do Programador
Vídeos
1,655 compartilhamentos6,810 visualizações
1,655 compartilhamentos6,810 visualizações

WebAssembly // Dicionário do Programador

Thais Cardoso de Mello - 24 de junho de 2019
Promoções de Jogos do Final de Semana (21/06)
Notícias
10 visualizações
10 visualizações

Promoções de Jogos do Final de Semana (21/06)

Carlos L. A. da Silva - 21 de junho de 2019