Quali sono le possibili cause dei timeout Layer 4 e Layer 7 in HAProxy?
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
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.