Linux - Como melhorar o desempenho em rede
O kernel do Linux possui uma série de variaveis que podem ser modificadas para melhorar a performance do sistema. Quando falamos de melhorar de performance e mexer em váriaveis de sistemas, no caso iremos e mexer no proc filesystem, devemos tomar cuidado, sendo que a melhor forma é sempre analisar, avaliar asalterações que fazemos, o que pode melhorar o meu servidor, pode nao melhorar o seu.
Quando o servidor esta conversando com alguma aplicação, fazendo um NAT, trabalhando como um firewall ele esta armazenando todas estas informações em RAM, por isso a limitação, ele tem que compartilhar esta RAM com outros dispositivos do sistema, por isso as vezes surge um certo congestionamento, e por isso ele tem que atribuir limite para os trabalhos de rede.
Aqui vai umas dicas de como melhorar o desempenho de um sistema Linux, para trabalho em rede, principalmente como Firewall.
Todas as váriaveis abaixo estão localizada em "/proc/sys", para modifica-las, vamos fazer através do comando sysctl, ao invés de ficar distribuindo echo pelo sistema.
net.core.rmem_maxnet.core.wmem_maxEsta váriavel diz ao sistema o tamanho máximo de leitura e escrita para sockets, podemos tentar dobrar estas váriaveis por exemplo, por padrão o seu sistema estará com 128Kb (Calculo feito pelo proprio sistema no boot, baseado em sua memória RAM):
sysctl -w net.core.rmem_max=256000 >> /etc/sysctl.confsysctl -w net.core.wmem_max=256000 >> /etc/sysctl.conf
Obs. Esta váriavel esta disponível também caso voce deseja aumentar apenas o buffer da pilha TCP/IP. Basta alterar o caminho para:
net.ipv4.wmem_max
net.ipv4.rmem_max
net.core.netdev_max_backlog
Este parametro diz ao sistema o número maximo de pacotes que podem ser enfileirados para entregar ao device de rede. Caso a sua rede seja de alto desempenho:
sysctl -w net.core.netdev_max_backlog=2000 >> /etc/sysctl.conf
net.core.somaxconn
Esta váriavel seta o máximo permitido de conexõs no backlog através da função listen() do sistema. Quando o número conexões alcança este valor, conexões futuras são descartadas.
sysctl -w net.core.somaxconn=256 >> /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog
Esta váriavel controla a fila de TCP Syn para cada porta. Conexões novas são armazenadas até ela ser aceita pelo servidor. Se existir mais conexões do que o valor especificado por esta váriavel a conexão será rejeitada.
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
Estas são algumas, das muitas váriaveis que podem melhor o desempenho de seu servidor, lembre-se este valores podem ser aumentados, dimunuindos, para ajustes conforme a sua necessidade, é só testar.
O kernel do Linux possui uma série de variaveis que podem ser modificadas para melhorar a performance do sistema. Quando falamos de melhorar de performance e mexer em váriaveis de sistemas, no caso iremos e mexer no proc filesystem, devemos tomar cuidado, sendo que a melhor forma é sempre analisar, avaliar asalterações que fazemos, o que pode melhorar o meu servidor, pode nao melhorar o seu.
Quando o servidor esta conversando com alguma aplicação, fazendo um NAT, trabalhando como um firewall ele esta armazenando todas estas informações em RAM, por isso a limitação, ele tem que compartilhar esta RAM com outros dispositivos do sistema, por isso as vezes surge um certo congestionamento, e por isso ele tem que atribuir limite para os trabalhos de rede.
Aqui vai umas dicas de como melhorar o desempenho de um sistema Linux, para trabalho em rede, principalmente como Firewall.
Todas as váriaveis abaixo estão localizada em "/proc/sys", para modifica-las, vamos fazer através do comando sysctl, ao invés de ficar distribuindo echo pelo sistema.
net.core.rmem_maxnet.core.wmem_maxEsta váriavel diz ao sistema o tamanho máximo de leitura e escrita para sockets, podemos tentar dobrar estas váriaveis por exemplo, por padrão o seu sistema estará com 128Kb (Calculo feito pelo proprio sistema no boot, baseado em sua memória RAM):
sysctl -w net.core.rmem_max=256000 >> /etc/sysctl.confsysctl -w net.core.wmem_max=256000 >> /etc/sysctl.conf
Obs. Esta váriavel esta disponível também caso voce deseja aumentar apenas o buffer da pilha TCP/IP. Basta alterar o caminho para:
net.ipv4.wmem_max
net.ipv4.rmem_max
net.core.netdev_max_backlog
Este parametro diz ao sistema o número maximo de pacotes que podem ser enfileirados para entregar ao device de rede. Caso a sua rede seja de alto desempenho:
sysctl -w net.core.netdev_max_backlog=2000 >> /etc/sysctl.conf
net.core.somaxconn
Esta váriavel seta o máximo permitido de conexõs no backlog através da função listen() do sistema. Quando o número conexões alcança este valor, conexões futuras são descartadas.
sysctl -w net.core.somaxconn=256 >> /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog
Esta váriavel controla a fila de TCP Syn para cada porta. Conexões novas são armazenadas até ela ser aceita pelo servidor. Se existir mais conexões do que o valor especificado por esta váriavel a conexão será rejeitada.
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
Estas são algumas, das muitas váriaveis que podem melhor o desempenho de seu servidor, lembre-se este valores podem ser aumentados, dimunuindos, para ajustes conforme a sua necessidade, é só testar.
Marcadores:
Linux,
Servidores Linux
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário