tcp / ip Erros de conexão

2

Temos um servidor web com 128GB de memória principal, 32 vCPUs no Ubuntu 16.04. Ele executa aplicativos nginx, php-fpm, postgresql, mysql e beanstalkd.

O servidor da web fornece alguns erros de conexão de diferentes aplicativos quando recebe tráfego de alto rendimento. Em tempos normais, tudo está bem.

Postgresql:

 [PDOException]
  SQLSTATE[08006] [7] could not connect to server: Connection timed out
        Is the server running on host "127.0.0.1" and accepting
        TCP/IP connections on port 5432?

Mysql:

 [PDOException]
  SQLSTATE[HY000] [2002] Connection timed out

Beanstalkd:

fwrite(): send of 8192 bytes failed with errno=32 Broken pipe

Quais configurações do servidor (sysctl.conf talvez) afetam esses limites? Como posso aumentar esses limites para evitar erros?

    
por onesvat 15.11.2016 / 19:57

1 resposta

0

Ahoy, Se você tiver muitas conexões neste servidor, poderá querer começar a monitorar o número de conexões que o servidor host possui. Se você exceder o limite que o kernel do Linux construiu para o número de conexões permitidas, você poderá ver falhas de conexão nos horários de pico. No log do kernel, você pode ver linhas como

nf_conntrack: table full, dropping packet

Para ver o limite do número de conexões:

sysctl net.ipv4.netfilter.ip_conntrack_max

Para ver o número de conexões atuais

wc -l /proc/net/ip_conntrack

Se você ver que as conexões atuais estão atingindo o limite, isso explicaria o problema. Você pode tentar aumentar o limite através do comando abaixo, mas o kernel tipicamente escolhe um número baseado no hardware em que está sendo executado, e se o limite é elevado acima do que o hardware pode manipular, isso também pode fazer com que conexões estabelecidas sejam quebradas quando novas conexões são alocadas.

Para aumentar esse limite (não preservado durante a reinicialização)

sysctl -w net.ipv4.netfilter.ip_conntrack_max=12000

Como alternativa, adicione a seguinte linha ao arquivo /etc/sysctl.conf para preservar essa configuração em todas as reinicializações:

net.ipv4.netfilter.ip_conntrack_max=12000

Eu recomendo as ferramentas conntrack fornecidas pelo link

sudo apt-get install conntrack 

Esta ferramenta permitirá que você veja a lista de conexões (-L), o contador (-C) e as estatísticas, incluindo pacotes descartados (-S)

Link Útil: link

    
por 26.09.2018 / 21:26