ECS: xDoctor RAP153: Limite de conexão (1.000) atingido nos nós do ECS, nenhuma nova conexão
Summary: A leitura e gravação do aplicativo no ECS não consegue estabelecer mais conexões de soquete. Em alguns cenários, esse problema pode causar possível indisponibilidade de dados se o aplicativo estiver abrindo conexões excessivas maiores do que os limites de conexão padrão. ...
Symptoms
O aplicativo não consegue estabelecer novas conexões de rede para solicitações HTTPs.
Cause
Os nós do ECS têm um limite de conexão de 1.000 por nó. Se este limite for excedido, dataheadsvc mostra o seguinte erro:
169.xxx.2.9 2021-02-24T21:13:08,792 [qtp85102332-247-acceptor-1@4fda771a-TrafficMetricsNetworkTrafficServerConnector@49de2cc4{HTTP/1.1,[http/1.1]}{10.xxx.xxx.xxx:9020}] INFO ConnectionLimit.java (line 177) Connection Limit(1000) reached for [TrafficMetricsNetworkTrafficServerConnector@49de2cc4{HTTP/1.1,[http/1.1]}{10.xxx.xxx.xxx:9020}, TrafficMetricsNetworkTrafficServerConnector@4e293c35{SSL,[ssl, http/1.1]}{10.xxx.xxx.xxx:9021}]
Para ver mais informações, analise os logs com svc_log para contar as entradas de "Limite de conexão (1000) atingido" nos últimos 30 minutos.
Comandos:
# svc_log dataheadsvc "Connection Limit(1000) cleared" -start "30 minutes ago" -sh -st minute # svc_log dataheadsvc "Connection Limit(1000) cleared" -start "24 hour ago" -sh -st hour
Exemplo:
admin@node1:~># svc_log dataheadsvc "Connection Limit(1000) cleared" -start "30 minutes ago" -sh -st minute
svc_log v1.0.24 (svc_tools v1.8.6.0) Started 2021-02-26 18:47:10
Running on nodes: <All nodes>
Time range: 2021-02-24 21:00:00 - 2021-02-24 21:30:59
Filter string(s): 'Connection Limit(1000) cleared'
Show nodename(s): True
Search reclaim logs (if any): False
Count of message occurrences per minute:
# Log
Time Entries
------------------------------
2021-02-24 21:01:xx 0
2021-02-24 21:02:xx 0
2021-02-24 21:03:xx 0
2021-02-24 21:04:xx 41
2021-02-24 21:05:xx 134
2021-02-24 21:06:xx 8
2021-02-24 21:07:xx 10
2021-02-24 21:08:xx 11
2021-02-24 21:09:xx 0
2021-02-24 21:10:xx 0
2021-02-24 21:11:xx 0
2021-02-24 21:12:xx 412
2021-02-24 21:13:xx 650
2021-02-24 21:14:xx 0
2021-02-24 21:15:xx 0
2021-02-24 21:16:xx 0
2021-02-24 21:17:xx 0
2021-02-24 21:18:xx 0
2021-02-24 21:19:xx 0
2021-02-24 21:20:xx 0
2021-02-24 21:21:xx 0
2021-02-24 21:22:xx 0
2021-02-24 21:23:xx 0
2021-02-24 21:24:xx 0
2021-02-24 21:25:xx 0
2021-02-24 21:26:xx 0
2021-02-24 21:27:xx 0
2021-02-24 21:28:xx 0
2021-02-24 21:29:xx 0
2021-02-24 21:30:xx 0
Total: 1266
Resolution
Esse é geralmente um problema de aplicativo com a forma como o aplicativo abre e fecha conexões de rede. O aplicativo ou o balanceador de carga do usuário deve lidar com as conexões e deve fechá-las depois de concluídas. O aplicativo deve sempre tentar resolver o problema em seu lado antes de alterar o ECS, pois isso causa mais carga no ECS.
Para ajudar a identificar o problema, use netstat durante o evento para obter os IPs que estabeleceram conexões.
Comando:
# sudo ss | grep 9020
Exemplo:
admin@ecsnode1:~> sudo ss | grep 9020 ESTAB 0 0 [::ffff:10.xx.xxx.71]:9020 [::ffff:10.xxx.xxx.9]:56134
Para ver o número de conexões no tempo atual, use este comando:
admin@ecsnode1:~> sudo ss -tn sport = :9020 | wc -l