Avem un produs bazat pe o aplicație terță, care rulează pe un server apache conectat la o bază de date firebird (v2.5.3).
Din păcate, am ajuns la un punct în care primim timeout-uri când utilizatorii încearcă să facă cereri către server. Când deschidem devtools->fila network, vedem că pachetele sunt aruncate.
Pentru depanarea acestei probleme, am înregistrat trafic wireshark pe server și vedem o mulțime de evenimente de retransmisie. Unele dintre pachetele http sunt trecute în regulă, dar unele primesc aceste retransmisii și bănuiesc că acest lucru cauzează expirarea timpului.
CPU-ul serverului este ridicat (50-100%), mai ales din cauza bazei de date Firebird. Furnizorul de cloud unde este găzduit serverul nu are discuri SSD și suntem conștienți că aceasta poate fi o problemă.
Un lucru ciudat este că în înregistrarea wireshark nu vedem solicitările http de la utilizatori. Iată cum arată pachetele care sunt primite:
Când am încercat să prind solicitări de la un anumit IP care nu au reușit, am primit doar retransmisie TCP (deci nu văd cererea în sine). Nu sunt sigur dacă este semnificativ, dar conexiunea este pe portul 443. Acesta este un exemplu de cum arată:
Este posibil ca, deoarece baza de date Firebird este ocupată/cpu-ul este ridicat, pachetele http să fie aruncate mai jos (după 4-5 secunde) chiar și fără înregistrarea cererii http în wireshark?
Deoarece nu putem schimba discurile pe SSD, credeți că actualizarea procesorului ar putea ajuta cu această problemă?
Există vreo configurație apache sau firebird care ar putea îmbunătăți performanța?
Alte informații pe care pot încerca să le adun pentru a obține mai multe informații despre problemă?