Ho una piccola domanda riguardante VmSize, nella documentazione che dovrebbe essere l'utilizzo della memoria dell'applicazione.VmSize = memoria fisica + scambio?
Tuttavia sul mio sistema:
VmSize = memoria fisica + swap VmHWM sembra più simile a ciò che l'applicazione in realtà sarebbe utilizzando.
[[email protected] ~]# free -m
total used free shared buffers cached
Mem: 12012 9223 2788 0 613 1175
-/+ buffers/cache: 7434 4577
Swap: 3967 0 3967
[[email protected] ~]# cat /proc/8268/status
Name: mysqld
State: S (sleeping)
Tgid: 8268
Pid: 8268
PPid: 1
TracerPid: 0
Uid: 89 89 89 89
Gid: 89 89 89 89
FDSize: 512
Groups: 89
VmPeak: 15878128 kB
VmSize: 15878128 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 7036312 kB
VmRSS: 7036312 kB
VmData: 15839272 kB
VmStk: 136 kB
VmExe: 10744 kB
VmLib: 6356 kB
VmPTE: 16208 kB
VmSwap: 0 kB
Threads: 265
SigQ: 0/96048
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000087007
SigIgn: 0000000000001000
SigCgt: 00000001800066e9
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000001fffffffff
Seccomp: 0
Cpus_allowed: fff
Cpus_allowed_list: 0-11
Mems_allowed: 00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 2567
nonvoluntary_ctxt_switches: 77
Qualche idea del perché? Provo a ottenere l'utilizzo della memoria per questa applicazione in particolare, ma questo risultato non ha molto senso.
Grazie.
Grazie per questa risposta. Quindi Vmsize è la quantità di memoria effettivamente raggiungibile dall'applicazione allora? Se desidero ottenere l'attuale utilizzo della memoria della mia applicazione, cosa devo fare? "VmRSS: Resident set size" sarebbe un buon candidato? Questo valore include anche le librerie? Voglio prendere tutti i segmenti in account, codice, dati, stack e heap per l'applicazione e sono libs. Grazie. – rubymonk
Sì, RSS è il conteggio di tutta la memoria fisica utilizzata attualmente dal processo, ma esclude lo swap (presentato da VmSwap). –