ECS: xDoctor RAP153: Se alcanzó el límite de conexión (1000) en los nodos de ECS; no hay conexión nueva
Summary: La lectura y escritura de aplicaciones en ECS no puede establecer más conexiones de conector. En algunos escenarios, este problema puede causar una posible falta de disponibilidad de datos si la aplicación está abriendo conexiones excesivas que superan los límites de conexión predeterminados. ...
Symptoms
La aplicación no puede establecer nuevas conexiones de red para las solicitudes HTTPS.
Cause
Los nodos de ECS tienen un límite de conexión de 1000 por nodo. Si se supera este límite, dataheadsvc Muestra el siguiente error:
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 más información, analice los registros con svc_log para contar las entradas de "Connection Limit (1000) reached" en los ú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
Ejemplo:
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
Por lo general, este problema se relaciona con la forma en que esta abre y cierra las conexiones de red. La aplicación o el balanceador de carga del usuario deben manejar las conexiones y deben cerrarlas una vez que finalicen. La aplicación siempre debe intentar resolver el problema de su lado antes de cambiar ECS, ya que esto causa más carga en ECS.
Para ayudar a identificar el problema, utilice netstat durante el evento para obtener las IP que tienen conexiones establecidas.
Comando:
# sudo ss | grep 9020
Ejemplo:
admin@ecsnode1:~> sudo ss | grep 9020 ESTAB 0 0 [::ffff:10.xx.xxx.71]:9020 [::ffff:10.xxx.xxx.9]:56134
Para ver la cantidad de conexiones en el tiempo actual, utilice este comando:
admin@ecsnode1:~> sudo ss -tn sport = :9020 | wc -l