Mai întâi voi veni cu câteva feedback pentru configurarea ta.
Când construiți o aplicație Python, nu este recomandat să utilizați gunicorn ca gazdă de server, construirea sa pentru dezvoltare, închideți utilizarea uWSGI pentru aplicația dvs. Python.
În continuare, când utilizați proxy în NGINX, vă voi recomanda să dezactivați tamponarea pentru proxy
proxy_buffering dezactivat;
Când dezactivați tamponarea, faceți site-ul un pic mai lent în timpul de încărcare pentru client, demonstrând nevoia acestuia de a trimite pachetul complet de la server la client. Expiratorii mei îmi spun că nu este atât de mult când vorbim de dezvoltare web și vă protejează pe termen lung dacă doriți să rulați aplicația pe mai multe servere în spatele unui echilibrator de încărcare precum NGINX Proxy, Docker Cluster sau ceva de genul.
După feedback-ul meu, sună ca și cum ați avea ceva în codul dvs., intrați într-o buclă și nu vă opriți niciodată sau aveți o conexiune/interogare SQL lonnnnnnng acolo durează mai mult de 3 minute pentru a se executa.
Ceea ce vă voi recomanda aici, este activarea jurnalului lent pe baza de date, astfel încât să puteți obține un jurnal pentru toate interogările acolo durează mai mult de 0,5 secunde, poate fi un index lipsă în baza de date acolo, care execută site-ul.
Python normal nu a durat 3 minute pentru a executa o zonă de script/cod, așa că sună ca un serviciu extern, de ex. baza de date, API sau ceva în acest caz.
Când ați activat jurnalul lent pentru baza dvs. de date, un al doilea caz va fi crearea unui jurnal simplu pentru script-ul dvs. cu „ora de pornire” + „ora de încheiere” și descărcați-l cu metoda/pagina/url-ul care atinge această zonă și aruncați-l. la un fișier, astfel încât să îl puteți deschide cu ușurință, să ruleze cu întârziere în 5-6 ore în care vorbiți sau mai mult pentru a vă detecta eroarea.
Cred că este cel mai bun mod, prima problemă va fi să găsești de ce codul durează 3 minute pentru a se executa.