ECS : xDoctor RAP153 : Limite de connexion (1 000) atteinte sur les nœuds ECS, aucune nouvelle connexion
Summary: La lecture et l’écriture d’applications dans ECS ne peuvent pas établir plus de connexions de socket. Dans certains cas, ce problème peut entraîner une indisponibilité potentielle des données si l’application ouvre un nombre excessif de connexions supérieures aux limites de connexion par défaut. ...
Symptoms
L’application ne parvient pas à établir de nouvelles connexions réseau pour les demandes HTTPs.
Cause
Les nœuds ECS ont une limite de 1 000 connexions par nœud. Si cette limite est dépassée, dataheadsvc affiche l’erreur suivante :
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}]
Pour plus d’informations, analysez les journaux avec svc_log pour compter les entrées pour « Limite de connexion (1000) atteinte » au cours des 30 dernières minutes.
Commandes:
# 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
Exemple :
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
Ce problème est généralement lié à la façon dont l’application ouvre et ferme les connexions réseau. L’application ou l’équilibreur de charge de l’utilisateur doit gérer les connexions et fermer les connexions une fois l’opération terminée. L’application doit toujours essayer de résoudre le problème de son côté avant de modifier ECS, car cela entraîne une charge supplémentaire sur ECS.
Pour vous aider à identifier le problème, utilisez netstat pendant l’événement pour obtenir les adresses IP qui ont établi des connexions.
Commande:
# sudo ss | grep 9020
Exemple :
admin@ecsnode1:~> sudo ss | grep 9020 ESTAB 0 0 [::ffff:10.xx.xxx.71]:9020 [::ffff:10.xxx.xxx.9]:56134
Pour afficher le nombre de connexions à l’heure actuelle, utilisez cette commande :
admin@ecsnode1:~> sudo ss -tn sport = :9020 | wc -l