+ Responder ao Tópico



  1. #1

    Padrão 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

  2. #2

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    Boa tarde.

    Citação Postado originalmente por mpsbr2004 Ver Post
    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 Ver Post
    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 Ver Post
    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



  3. #3

    Padrão 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"

  4. #4

    Padrão 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



  5. #5

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    Citação Postado originalmente por mpsbr2004 Ver Post
    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 Ver Post
    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 Ver Post

    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

  6. #6

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    Citação Postado originalmente por mpsbr2004 Ver Post
    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
    Não saia derrubando conexões sem antes descobrir a real causa de seu problema. Esta criando um ser solucionar o outro.

    Quando você diz que o servidor fica lento está se referindo a tráfego lento nos clientes ou winbox lento ao abrir a aba de conexões?
    O que você está usando como servidor?
    Como fica o processamento no momento da lentidão?
    Usa cache?
    Usa alguma regra para limitar conexões?



  7. #7

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    essa quantidade de conexoes, vai depender do servidor... mas uma configuração comum...

    Código :
    /ip firewall connection> print count-only 
    341901

    provavelmente que durante a tarde isso deve dobrar ou triplicar...

  8. #8

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    O seu mikrotik está instalado em que equipamento? Uma dica se você tem um servidor pra gerenciar e uma rb pra wireless, desative o tracking no firewall desse equipamento wireless. Deixando normal no equipamento que é o servidor, e tente jogar o 1º script passado pelo nosso amigo trober.



  9. #9

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    acho que não é uma boa ideia derrubar conexões...

  10. #10

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    Para executar um scrip a cada minuto é só setar uma schedule para ele



  11. #11

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    Boa noite amigos, depois de algum tempo "tentando" resolver o problema de lentidão na rede acabei resolvendo de uma forma bem mais simples do que se poderia imaginar. O script funcionou muito bem, porém mesmo depois de implanta-lo ainda sim continuei estudando o real motivo da lentidão em certos horários.
    Bom, o problema real é o tempo das conexões estabelecidas, que são como padrão 24h, e mesmo que o cliente já tenha saído "desligado" o mirkotik mantem essa conexão estabelecida com o servidor (internet) por 24h. E isso aumenta a latência de qualquer link de internet.

    Bem, o que eu fiz foi diminuir esse tempo para apenas 1 minuto, e caso o cliente ainda esteja on-line é claro que isso é renovado indefinidamente. E depois de alguns dias aparentemente o problema foi resolvido, e incrivelmente as conexões hoje não passam de 500 em horários de picos.

    Mesmo assim continuarei a estudar os motivos desses problemas, e espero que esse post ajude a mais pessoas que talvez tenham o mesmo problema que eu.

    Att.;
    Marcello Santos

  12. #12

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    Citação Postado originalmente por mpsbr2004 Ver Post
    Boa noite amigos, depois de algum tempo "tentando" resolver o problema de lentidão na rede acabei resolvendo de uma forma bem mais simples do que se poderia imaginar. O script funcionou muito bem, porém mesmo depois de implanta-lo ainda sim continuei estudando o real motivo da lentidão em certos horários.
    Bom, o problema real é o tempo das conexões estabelecidas, que são como padrão 24h, e mesmo que o cliente já tenha saído "desligado" o mirkotik mantem essa conexão estabelecida com o servidor (internet) por 24h. E isso aumenta a latência de qualquer link de internet.

    Bem, o que eu fiz foi diminuir esse tempo para apenas 1 minuto, e caso o cliente ainda esteja on-line é claro que isso é renovado indefinidamente. E depois de alguns dias aparentemente o problema foi resolvido, e incrivelmente as conexões hoje não passam de 500 em horários de picos.

    Mesmo assim continuarei a estudar os motivos desses problemas, e espero que esse post ajude a mais pessoas que talvez tenham o mesmo problema que eu.

    Att.;
    Marcello Santos

    Então estrelinha pro Trober


    Citação Postado originalmente por trober Ver Post
    Boa tarde.



    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


    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).



    Recomendo outro tópico[1], para complementação.

    Espero ter adudado.

    [1] https://under-linux.org/f212/como-mo...95/#post620348

    Saudações,

    Trober



  13. #13

    Padrão Re: Servidor lento, script para melhorar a velocidade apagando as conexões estabelecidas

    Citação Postado originalmente por jailtonnetlink Ver Post
    Então estrelinha pro Trober
    Grato jailtonnetlink

    Citação Postado originalmente por mpsbr2004 Ver Post
    Bem, o que eu fiz foi diminuir esse tempo para apenas 1 minuto
    Recomendo 10 minutos, em vez de somente um.

    Saudações,

    Trober