Perché i valori% MEM nella parte superiore non si sommano alla memoria totale utilizzata?


18

Attualmente sto eseguendo il debug di problemi di prestazioni con il mio VPS e per questo sto cercando di capire quale dei processi consuma più memoria. Leggendo in alto, ecco cosa ottengo:

Mem:    366544k total,   321396k used,    45148k free,      380k buffers
Swap:  1048572k total,   592388k used,   456184k free,     7756k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                  
12339 ruby      20   0  844m  74m 2440 S    0 20.8   0:24.84 ruby                                                                                     
12363 ruby      20   0  844m  73m 1576 S    0 20.6   0:00.26 ruby                                                                                     
21117 ruby      20   0  171m  33m 1792 S    0  9.3   2:03.98 ruby                                                                                     
11846 ruby      20   0  858m  21m 1820 S    0  6.0   0:09.15 ruby                                                                                     
21277 ruby      20   0  219m  11m 1648 S    0  3.2   2:00.98 ruby                                                                                     
  792 root      20   0  266m  10m 1024 S    0  3.0   1:40.06 ruby                                                                                     
  532 mysql     20   0  234m 4760 1040 S    0  1.3   0:41.58 mysqld                                                                                   
  793 root      20   0  250m 4616  984 S    0  1.3   1:20.55 ruby                                                                                     
  586 root      20   0  156m 4532  848 S    0  1.2   6:17.10 god                                                                                      
12315 ruby      20   0  175m 2412 1900 S    0  0.7   0:07.55 ruby                                                                                     
 3844 root      20   0 44036 2132 1028 S    0  0.6   1:08.22 ruby                                                                                     
10939 ruby      20   0  179m 1884 1724 S    0  0.5   0:08.33 ruby                                                                                     
 4660 ruby      20   0  229m 1592 1440 S    0  0.4   2:55.46 ruby                                                                                     
 3879 nobody    20   0 37428  964  520 S    0  0.3   0:01.99 nginx 

Come puoi vedere la mia memoria è utilizzata per circa il 90% (che è il mio problema) ma quando sommi i valori% MEM, va solo a circa il 50-60%. Stessa cosa, RES non aggiunge fino a ~ 350mb. Perché? Sto fraintendendo il loro significato?

Grazie


Penso che top regola il numero di righe mostrate con le dimensioni del display, quindi tutti i processi potrebbero non essere visibili.
Samik,

Risposte:


6

Sto cercando di capire quale dei processi consuma più memoria.

È semplice: rubino !

quando si sommano i valori% MEM, si passa solo al 50-60% circa

In realtà, sommando le colonne come mostrato si ottiene il 69,2% .

  • Come ha notato Samik, questo certamente non include tutti i processi sul tuo sistema: prova a incollare l'output di top -b -n 1per ottenere l'output completo in un file e condividerlo con noi in modo che possiamo aiutarti meglio.

  • Inoltre, il kernel occupa una certa quantità di memoria e alcuni tipi di VPS (ad esempio Xen, KVM) riserveranno un po 'di memoria aggiuntiva all'avvio per il loro uso interno. Incolla anche l'output di dmesg.

Per una migliore metrica e facilità d'uso, ti consiglio di utilizzare htopInstalla htop anziché top, con l'opzione "Nascondi thread area utente" abilitata:

inserisci qui la descrizione dell'immagine

Guarda anche memtop:

inserisci qui la descrizione dell'immagine


Ecco l'output completo completo: paste.ubuntu.com/1055673 e dmesg: paste.ubuntu.com/1055674 L' uso di htop mi dà un output diverso! Vedo tre dei processi MEM del 22,4%, infatti, molti dei processi sono duplicati (anche mysqld, molte volte). In ogni caso, mi piace l'output, molto più pulito ... Anche Memtop è bello, sono in grado di capire meglio quale delle mie app ruby ​​sta consumando più memoria;)
ben

0

Il topcomando Linux mostra l'intera rammemoria utilizzata, non solo per te, ma anche per il sistema. linux cachesalcune aree dal tuo disco rigido per spiare il tuo computer. si consiglia di utilizzare qualsiasi altro monitor mem.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.