Navegando neste Tópico:   1 usuários anônimos





Load Balancing: Dá para melhorar desempenho?
Not too shy to talk
Cadastrado em:
29/1/2013 17:02
De Sao Paulo
Grupo:
Registered Users
Mensagens: 22
Offline
Ola pessoal, tudo bem?

Implementei um Load Balancing, que ainda está em ambiente de testes, e aparentemente está funcionando OK.
O que notei é que após implementar o Load Balancing, o desempenho da internet parece ter caído.

Vou explicar melhor:
Quanto compartilho a conexão, da forma como normalmente se faz usando somente um link (com somente 1 Gateway), quando dou um "ping" de alguma estação Windows qualquer, o ping corre "lisinho". Por exemplo vejam a saída do comando abaixo:

Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=10ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=8ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=10ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=10ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242
Resposta de 200.147.67.142: bytes=32 tempo=9ms TTL=242


E também quando uso o comando "tracert" para verificar as rotas e por qual roteador estão saindo os pacotes, noto que os saltos entre os roteadores no caminho ocorrem bem mais rápido do que quanto o Load Balancing está ativo.


Já quando ativo o Load Balancing (ativando as tabelas de roteamento em "/etc/iproute2/rt_table" para os 2 links e ativando as regras), quando dou o mesmo comando "ping" de alguma estação Windows, noto que o retorno do comando ping parece ficar mais lento o tempo de retorno dos pacotes também ficam mais lentos.
Vejam abaixo a saída do comando ping (em uma estação Windows) após ativar o Load Balancing:

Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Esgotado o tempo limite do pedido.
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Esgotado o tempo limite do pedido.
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=8ms TTL=52
Esgotado o tempo limite do pedido.
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=20ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=30ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Esgotado o tempo limite do pedido.
Resposta de 200.221.2.45: bytes=32 tempo=10ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Resposta de 200.221.2.45: bytes=32 tempo=9ms TTL=52
Esgotado o tempo limite do pedido.


E agora, se no prompt do Windows eu digitar o comando "tracert www.uol.com.br", observo que os saltos dos pacotes entre os roteadores pelo caminho percorrido se tornam mais lendo para retornar.

Abaixo segue a configuração que estou usando para fazer o Load Balancing:

# Dados da interfaces de rede conectadas com a internet - Link 1
placa_rede_1=eth1
tabela_1=nome_tabela_1
gateway_1=192.168.100.254
#peso_balanceamento_link_1=30
peso_balanceamento_link_1=10

# Dados da interfaces de rede conectadas com a internet - Link 2
placa_rede_2=eth2
tabela_2=nome_tabela_2
gateway_2=192.168.200.254
#peso_balanceamento_link_2=70
peso_balanceamento_link_2=10

# Dados da Rede Interna
placa_rede_interna=eth0
rede_interna=192.168.50.0/24

### Fim das Variáveis

#Carregar Modulos
echo "Carregando Modulos"
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MARK
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr


# Zero (0) para desativado e (1) para ativado
echo "1" > /proc/sys/net/ipv4/conf/default/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

# Deletar a rota default
echo "Deletando Rota Default"
ip route del default

# Limpa as regras das tabelas
echo "Limpando Regras das Tabelas"
ip route flush table $tabela_1
ip route flush table $tabela_2

# Define a rota para as tabelas
echo "Definindo as Rotas para as Tabelas"
ip route add default dev $placa_rede_1 via $gateway_1 table $tabela_1
ip route add default dev $placa_rede_2 via $gateway_2 table $tabela_2

# Define as regras para balanceamento dos links
ip route add default scope global nexthop via $gateway_1 dev $placa_rede_1 weight $peso_balanceamento_link_1 nexthop via $gateway_2 dev $placa_rede_2 weight $peso_balanceamento_link_2

## Regras
echo "Definindo as Marcas dos para o Kernel"
ip rule add fwmark 0x10 lookup $tabela_1 prio 3
ip rule add fwmark 0x20 lookup $tabela_2 prio 3


# Aplicar as regras
echo "Aplicando as Regras"
ip route flush cache


# Compartilha a conexãi
echo "Compartilhando a Conexao atravez das Interfaces de Rede"
iptables -t nat -A POSTROUTING -o $placa_rede_1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $placa_rede_2 -j MASQUERADE

echo "Definindo quais pacotes saem por qual link"
iptables -I PREROUTING -t mangle -i $placa_rede_interna -s $rede_interna -d 0/0 -p tcp -m multiport --dports 110,23,25,465,587 -j MARK --set-mark 0x10
iptables -I PREROUTING -t mangle -i $placa_rede_interna -s $rede_interna -d 0/0 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 0x20


Enfim, me dúvida é se posso melhor o desempenho deste Loading Balancing ???
Ou quando usa-se um Loading Balancing, perde-se um pouco do desempenho quando se está roteando os pacotes por entre os Gateways?
Ou, no caso do meu Script, se vocês observarem estou marcando determinados pacotes para saírem por um Gateway específico, ou seja, no meu exemplo que a "navegação comum" (portas 80 e 443) utilize o Gateway 2 (que é o Link 2). Em outras palavras, marcar pacotes para depois redirecioná-los para gateways específicos prejudicam o desempenho/fluxo das entradas e saídas dos pacotes?

Espero ter sido claro!

Alguém já passou por isso? Dá para melhorar?

abraço,
Jurgen

Enviado em: 27/7/2016 14:18
Transferir mensagem para outros aplicativos Transferir


Re: Load Balancing: Dá para melhorar desempenho?
Home away from home
Cadastrado em:
14/2/2012 20:37
De Belo Horizonte MG
Grupo:
Registered Users
Mensagens: 679
Offline
Ola Jurgen! Primeiramente parabéns por ter chegado até aqui !!!

Não estou querendo tirar/acabar com seu entusiasmo, kkk mas nunca funcionei o load balance bem!

Sempre tive uma instabilidade nele, eu adotei o seguinte padrão para o uso de 2 links.


Uma parte da empresa sai pelo link1 e a outra sai pelo link2 e caso o link1 caia o pessoal do link1 passar a usar o link2 e vice versa.

Então consigo usar os dois links de forma a dividir o trafego e passo a ter redundância de falha do link, chamo isto de link failover.

Em algumas situações deixo o link1 somente para os servidores que tem acesso externo, e caso o link2 caia somente alguns usuários poderem usar o link1 de forma a não comprometer o desempenho dos servidores de conexão remota.

Enviado em: 30/7/2016 17:23
Transferir mensagem para outros aplicativos Transferir


Re: Load Balancing: Dá para melhorar desempenho?
Home away from home
Cadastrado em:
11/4/2012 21:42
De Americana - SP
Grupo:
Registered Users
Mensagens: 376
Offline
Olá Jurgen.

Eu não tenho essa situação em uso para lhe opinar, mas
percebi que as eths 1 e 2 estão segmentadas, porém a
eth0 está na mesma rede da eth1. Já experimentou
utilizar a eth0 em rede distinta da eth1?
É só uma sugestão para teste, cabendo a você analisar
se tem sentido ou não.

Abraços.

Enviado em: 1/8/2016 16:38
Transferir mensagem para outros aplicativos Transferir


Re: Load Balancing: Dá para melhorar desempenho?
Not too shy to talk
Cadastrado em:
29/1/2013 17:02
De Sao Paulo
Grupo:
Registered Users
Mensagens: 22
Offline
Olá Estefanio, obrigado por me responder!

Bom, não expliquei direito o uso, mas será parecido com o que você faz aí.

Estou em fase de testes ainda, mas meu planejamento para uso dos links é o seguinte:

Link-1: Será usado para toda navegação/mail (portas 80,443.110,23,25,465,587)

Link-2: Será usado somente para a VPN que interliga Matriz com as Filiais

Enviado em: 2/8/2016 16:09
Transferir mensagem para outros aplicativos Transferir


Re: Load Balancing: Dá para melhorar desempenho?
Not too shy to talk
Cadastrado em:
29/1/2013 17:02
De Sao Paulo
Grupo:
Registered Users
Mensagens: 22
Offline
Olá Zé Luís!

Estão em redes distintas sim!

Observe que:

eth1 está na rede: 192.168.100.0

eth0 está na rede: 192.168.50.0

Enviado em: 2/8/2016 16:15
Transferir mensagem para outros aplicativos Transferir


Re: Load Balancing: Dá para melhorar desempenho?
Home away from home
Cadastrado em:
14/2/2012 20:37
De Belo Horizonte MG
Grupo:
Registered Users
Mensagens: 679
Offline
Então você não vai precisar do Load Balancing, ai é uma questão de rota, para onde você quer sair, se você tem todos links e a maquina que esta usando o link1 sempre sairá por ele, você não vai precisar do load balancing! Entendeu?

Eu entendo que load balancing é você conseguir sair pelos 2 links usando uma tabela de rota que tenha dois gaytways.




Enviado em: 3/8/2016 19:14
Transferir mensagem para outros aplicativos Transferir


Re: Load Balancing: Dá para melhorar desempenho?
Home away from home
Cadastrado em:
11/4/2012 21:42
De Americana - SP
Grupo:
Registered Users
Mensagens: 376
Offline

Enviado em: 3/8/2016 19:40
Transferir mensagem para outros aplicativos Transferir






Você pode exibir os tópicos.
Você não pode iniciar um novo tópico.
Você não pode responder.
Você não pode editar.
Você não pode excluir mensagens.
Você não pode incluir votações.
Você não pode votar.
Você não pode anexar arquivos.
Você não pode enviar mensagens sem aprovação.

[Pesquisa Avançada]