Quali sono le possibili cause dei timeout Layer 4 e Layer 7 in HAProxy?

Sep 01 2020

Sto copiando la mia domanda Stackoverflow: https://stackoverflow.com/q/63683206/6344947

Ho visto che stavo ottenendo 503 per la mia applicazione quando stavo colpendo le API. Quando ho controllato le statistiche HAProxy LB per le mie istanze, ho scoperto che una di esse mostrava il timeout Layer 4 e l'altra mostrava il timeout Layer 7.

Screenshot delle statistiche HAProxy LB: https://i.stack.imgur.com/6Vtnc.png

Le istanze avevano un processo Java in esecuzione al loro interno che fungeva da servizio di backend. Al riavvio del processo, ho scoperto che le cose erano tornate alla normalità.

Quindi c'è un modo per scoprire quale potrebbe essere la causa? Potrebbe essere anche a causa di problemi di memoria insufficiente? Avevo visto i log, ma non c'era nulla relativo a OOM; inoltre, abbiamo avuto problemi di OOM in quel caso in passato, ma a quel tempo non ho controllato le statistiche di HAProxy.

Qualsiasi aiuto sarebbe apprezzato.

Risposte

tbielaszewski Sep 01 2020 at 18:27

Layer 4 significa che ha un timeout in attesa di handshake TCP, forse il server è inattivo? Il livello 7 significa che ha ottenuto un timeout in attesa della risposta HTTP, quindi l'applicazione è in esecuzione (forse si avvia?), In ascolto sulla porta specificata e accetta le connessioni TCP, ma non ha fornito la risposta HTTP in tempo. Forse è ancora in fase di lancio? Alcune applicazioni java richiedono pochi minuti per avviarsi effettivamente. Entrambi i casi indicano piuttosto un problema con l'applicazione di backend e non un problema con haproxy stesso. Direi che è ora di controllare i log di questa applicazione java.