Esse última final de semana, 5 e 16 de junho de 2013, rolou a primeira turma de Performance and Tuning focada em Linux do Coruja de Ti.

O pessoal que participou era de primeira. Muito interessados e com uma boa experiência e excelente contribuição junto à aula.

Vários aspectos foram abordados no curso, como a parametrização do /etc/sysctl.conf de acordo com a necessidade do servidor linux em questão. Ferramentas de profile e alguns outros pontos.

O que ficou claro e nítido é que há diversos cookbooks quanto a melhoria de performance focado em servidores linux, mas eles não ensinam o porque de cada alteração de parâmetro recomendado.

Exemplo:

alteração dos parâmetros do /proc/sys/net – diretório de arquivos virtuais responsável por armazenar os parâmetros de tuning para TCP/IP no Linux.

Depois de uma boa pesquisa e análise é que descobrimos a função dos parâmetros abaixo:

  1. /proc/sys/net/core/rmem_max – Maximum TCP Receive Window.
  2. /proc/sys/net/core/wmem_max – Maximum TCP Send Window.
  3. /proc/sys/net/ipv4/tcp_timestamps – Timestamp ( RFC 1323) add 12 bytes to the TCP headers.
  4. /proc/sys/net/ipv4/tcp_sack – TCP selective acknowledgments.
  5. /proc/sys/net/ipv4/tcp_window_scaling – support for large TCP Windows (RFC 1323). Needs to be set to 1 if the Max TCP Window is over 65535.
  6. mem_default = Default Receive Window.
  7. rmem_max = Maximum Receive Window.
  8. wmem_default = Default Send Window.
  9. wmem_max = Maximum Send Window.

O documento que nos auxiliou e muito foi o ipsysctl.conf, na versão 1.0.4 e que poderá ser consultado a partir do seguinte link. Eu já havia falado e indicado um local para download deste doc, mas o link com ele foi removido. Sorte que eu fiz o download e o backup. 🙂

Outro ponto bem legal e  que poucas pessoas se atentam no mercado é quanto ao JUMBO Frames.

Lá pelos meados de 1980 foi adotado o tamanho de 1500 bytes para os frames do protocolo Ethernet. Acontece que isso serviu muito bem para redes de até 100Mbs.

Agora, nós estamos falando de redes de 1/10/40/100 Gbps. E o tamanho frame tem que mudar e foi isso que aconteceu. Jumbo Frames possuem 9000 bytes.

Alguns problemas quanto ao Jumbo Frames já são de conhecimento daqueles que trabalham com a sua implementação. Overhead de redes, coexistência um tanto que problemáticas em redes que utilizam o padrão 1500, causando assim problemas e alguns outros pontos. — Mais infos nestes link..

A alteração de frames para o modelo Jumbo requer a reparametrização dos buffer do seu servidor, incluindo do TCP/IP. E isso é feito aos poucos, analisando cada parâmetro alterado e os seus efeitos no servidor e na rede.

Agora, vocês sabiam que existe o Super jumbo frames(SJF) – Frames que chegam a 64.000 bytes ?

Eles existem e são empregados na super computação.