Domanda

Ho un'applicazione Django che ogni tanto sta entrando in perdita di memoria.

Non sto usando dati di grandi dimensioni che potrebbero sovraccaricare la memoria, infatti la memoria 'mangia' dell'applicazione in modo incrementale (in una settimana la memoria va da ~ 70 MB a 4 GB), ecco perché sospetto che il collezionista della spazzatura manchi qualcosa, Non sono sicuro però.Inoltre, sembra che questo incremento non dipenda dal numero di richieste.

cose evidenti come DEBUG=True, lasciando file aperti, ecc ... non si applicano qui.

Sto usando uWSGI 2.0.3 (+ nginx) e Django 1.4.5

Potrei configurare wsgi in modo che riavvia il server quando la memoria supera un determinato limite, ma non vorrei farlo dal momento che non è una soluzione davvero.

Ci sono situazioni di bene conoscenza in cui il raccoglitore della spazzatura "non fa il suo lavoro correttamente"?Potrebbe fornire alcuni esempi di codice?

C'è qualche configurazione di UWSGI + DJANGO che potrebbe causare questo?

È stato utile?

Soluzione

Non ho trovato le cose esatte che sto cercando (ogni progetto è un mondo!), Ma seguendo alcuni indizi e consigli sono riuscito a risolvere il problema. Condivido con te alcuni link che potrebbero aiutare se stai affrontando un problema simile.

Django Memory Leaks, parte I , Django Memory Leaks, parte II , Trovare e fissare perdite di memoria in Python , Script ottimizzato per Nginx e UWSGI su Ubuntu 12.04 (Questo è per Web2py ma dà alcune "stampelle" tramite UWSGI) e Debug di perdite di memoria in un'applicazione WSGI .

Alcuni utili quindi risposte / domande: che è consigliato Python Memory Profiler? , S Eventuali Profiler di memoria di lavoro per Python3 , Python Memory Leaks e Python: Memoria Debug di perdite

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top