2015-12-15 10 views
5

Sto cercando di esaminare l'utilizzo della memoria di un grande server multi-thread. Secondo mallinfo(), ottengo arena=350M e fordblks=290M, il che suggerisce che gran parte dello spazio è effettivamente sprecato all'interno di malloc(). La funzione malloc_info() offre una buona struttura dati XML che dovrebbe essere auto-esplicativa. Ancora, qualcuno può spiegarmiGNU malloc_info(): ottiene una memoria veramente allocata?

  • È heap 0 speciale? È l'arena principale in cui risiedono tutti gli altri?
  • Il blocco <size from=.../> è assegnato, libero/disponibile o entrambi?
  • Che cos'è l'elemento <system>? Memoria allocata usando mmap()/sbrk()?
  • Che cos'è l'elemento <aspace>? Memoria disponibile?
  • Che dire di <aspace type="mprotect" .../>?

Tanto per cominciare, mi piacerebbe essere in grado di tracciare la memoria totale stanziato l'applicazione, vale a dire, tutto allocato e non ancora liberato, secondo quanto malloc() pensa.

+1

Passando attraverso la fonte, ho capito che si può calcolare la quantità di memoria liberata e non ancora riutilizzata (disponibile) sommando tutti i campi 'totale' di tutti gli elementi' size' e 'non ordinati'. Questo risponde al mio secondo punto. –

+1

Ulteriori analisi della fonte: '' è lo stesso del campo 'mallinfo()' 'arena'. –

risposta

1

Una grande quantità di utilizzo della memoria virtuale non è necessariamente un problema. L'implementazione malloc predefinita assegnerà grandi quantità di spazio di archiviazione per thread al fine di evitare problemi di contesa. Ciò accade in particolare su implementazioni a 64 bit che sono piuttosto comuni al giorno d'oggi. Non dovresti preoccuparti se non si verificano problemi con la dimensione della memoria residente o se si verificano problemi di paging.

Kevin Grigorenko ha scritto un numero di post di blog che trattano l'utilizzo della memoria in relazione a WebSphere, ma sono applicabili a qualsiasi grande processo multi-thread.

+1

Grazie. Ho anche trovato http://files.cnblogs.com/files/hseagle/demo.pdf, che aiuta a capire un po 'di GNU malloc. –

Problemi correlati