Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas
Bom dia amigos da under-linux. Estou aqui para tentar resolver um problema que "penso" ser o de muita gente que utiliza servidores mikrotik.
Sabemos que quando um número muito alto de conexões estabelecidas ou descartadas ficam na lista "IP > FIREWALL > CONNECTIONS" o servidor acaba apresentando uma certa lentidão, e "excluindo" essas conexões o servidor volta ao "normal".
Meu servidor, quando atinge um número de 10.000 conexões fica super lento, mesmo tendo pouquissimos clientes essa lentidão permanece, e ao que indica essas conexões não são descartadas e assim deixando o servidor lento mesmo que existam um número mínimo de clientes naquele instante.
Minha idéia, pretendo criar um script que a cada 1 minuto verifique a tabela "IP > FIREWALL > CONNECTIONS" e caso existe um número superior a 5.000 conexões ele execute o comando para "apagar" todas as conexões, incluindo as estabelecidas. O comando para apagar eu tenho "/ip firewall connection {remove [find]}" porém gostaria da ajuda de vocês para criar um script que "conte" as conexões.
Alguém poderia me ajudar nessa empreitada?
Abraços a todos
Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas
Boa tarde.
Citação:
Postado originalmente por
mpsbr2004
Minha idéia, pretendo criar um script que a cada 1 minuto verifique a tabela "IP > FIREWALL > CONNECTIONS" e caso existe um número superior a 5.000 conexões ele execute o comando para "apagar" todas as conexões, incluindo as estabelecidas.
Não derrube conexões de clientes. Que tal você diminuir o tempo de vida de conexões não estabelecidas / não mais estabelecidas? :)
O tempo padrão do RouterOS é de 24 horas. Diminua para 10 minutos, por exemplo. O (re)aging fará a renovação para você, sem derrubar seus clientes.
Para isso, use o comando abaixo, uma única vez:
Código :
/ip firewall connection tracking set tcp-established-timeout=10m
Citação:
Postado originalmente por
mpsbr2004
O comando para apagar eu tenho "/ip firewall connection {remove [find]}" porém gostaria da ajuda de vocês para criar um script que "conte" as conexões.
Como já dito, não recomendo derrubar conexões de clientes, mas se ainda ssim quiser fazer isso (que não recomendo), pelo menos se certifique que não são conexão assured, conforme abaixo:
Código :
/ip firewall connection remove [ /ip firewall connection find where assured=no ]
Em interpretação natural, o comando acima significa: Remover aquela conexão, que dentre todas as conexões existentes não for confirmada (e não mais confirmada).
Citação:
Postado originalmente por
mpsbr2004
Alguém poderia me ajudar nessa empreitada?Abraços a todos
Recomendo outro tópico[1], para complementação.
Espero ter adudado.
[1] https://under-linux.org/f212/como-mo...95/#post620348
Saudações,
Trober
Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas
Obrigado pela rápida resposta amigo. A regra que você postou eu já tentei, porém se você executa-la vai perceber que não trás uma melhora, acredito que por algum motivo o mikrotik não aceite-a.
No caso, poderiamos implementa-la usando outras regras para aceleração do servidor, más até o momento não consegui encontrar um script que conte essas conexões, estou procurando e se encontrar posto aqui para ajudar aos demais usuários do mikrotik.
Abraços
OBS: Amigo, você saberia me informar o porque do mikrotik colocar 1 dia para esse tipo de conexão, e porque usuários "avançados" do mikrotik não recomendam o uso de tal regra? "/ip firewall connection tracking set tcp-established-timeout=10m"
Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas
Valeu Marcio por ceder seu domingo para me ajudar. E graças a sua ajuda aqui está o script:
#Verifica a quantidade de conexões e se maior que 5000 executa o comando
:if ([/ip firewall connection print count] > 5000) do={
#Mais de 5000 executa comando de limpeza
/ip firewall connection {remove [find]}
} else={
#Menos de 5000 não executa comando
}};
Falta alguns detalhes como executar o script a cada 1 minuto, mas acredito que a base seja essa mesmo, e como você disse, preciso verificar o problema de "derrubar clientes".
Um grande abraço e valeu pena ENORME ajuda
Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas
Citação:
Postado originalmente por
mpsbr2004
A regra que você postou eu já tentei, porém se você executa-la vai perceber que não trás uma melhora, acredito que por algum motivo o mikrotik não aceite-a.
Se você utiliza uma versão não contemporânea de MikroTik RouterOS, é bem provável que não haverá aceitação do comando, no console. Recomendo atualização para o RouterOS 5.20.
Uso esse comando e surte grande efeito. Você talvez não tenha percebido o efeito imediato, pois as conexões antigas (com age de 24 horas) não serem afetadas, até a expiração completa.
Citação:
Postado originalmente por
mpsbr2004
más até o momento não consegui encontrar um script que conte essas conexões, estou procurando e se encontrar posto aqui para ajudar aos demais usuários do mikrotik.
A regra de contabilização está no link[1] que passei, o meu primeiro post[2].
Citação:
Postado originalmente por
mpsbr2004
OBS: Amigo, você saberia me informar o porque do mikrotik colocar 1 dia para esse tipo de conexão, e porque usuários "avançados" do mikrotik não recomendam o uso de tal regra? "/ip firewall connection tracking set tcp-established-timeout=10m"
O RFC5482[3] tem a resposta.
[1] https://under-linux.org/f212/como-mo...95/#post620348
[2] https://under-linux.org/f311/servido...69/#post637584
[3] http://tools.ietf.org/html/rfc5482
Saudações,
Trober