ECS: xDoctor RAP153: Limite di connessioni (1.000) raggiunto sui nodi ECS, nessuna nuova connessione
Summary: La lettura e la scrittura dell'applicazione in ECS non è in grado di stabilire ulteriori connessioni socket. In alcuni scenari, questo problema può causare una potenziale non disponibilità dei dati se l'applicazione apre un numero eccessivo di connessioni superiori ai limiti di connessione predefiniti. ...
Symptoms
L'applicazione non è in grado di stabilire nuove connessioni di rete per le richieste HTTP.
Cause
I nodi ECS hanno un limite di 1.000 connessioni per nodo. In caso di superamento di tale limite, dataheadsvc Mostra il seguente errore:
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}]
Per visualizzare ulteriori informazioni, analizzare i registri con svc_log per contare le voci relative al "Limite di connessioni (1000) raggiunto" negli ultimi 30 minuti.
Comandi:
# 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
Esempio:
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
Questo problema riguarda in genere il modo in cui l'applicazione apre e chiude le connessioni di rete. L'applicazione o il servizio di bilanciamento del carico dell'utente deve gestire le connessioni e chiuderle una volta completate. L'applicazione deve sempre tentare di risolvere il problema dal proprio lato prima di modificare ECS in quanto ciò causa un carico maggiore su ECS.
Per identificare il problema, utilizzare netstat durante l'evento per ottenere gli IP che hanno stabilito connessioni.
Comando:
# sudo ss | grep 9020
Esempio:
admin@ecsnode1:~> sudo ss | grep 9020 ESTAB 0 0 [::ffff:10.xx.xxx.71]:9020 [::ffff:10.xxx.xxx.9]:56134
Per visualizzare il numero di connessioni nell'ora corrente, utilizzare questo comando:
admin@ecsnode1:~> sudo ss -tn sport = :9020 | wc -l