Mam małe pytanie dotyczące VmSize, w dokumentacji ma być wykorzystanie pamięci przez aplikację.VmSize = pamięć fizyczna + zamiana?
Jednak w moim systemie:
VmSize = pamięć fizyczna + Swap VmHWM wydaje się bardziej jak co aplikacja faktycznie będzie używany.
[[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
Każdy pomysł dlaczego? Próbuję w szczególności wykorzystać pamięć dla tej aplikacji, ale ten wynik nie ma większego sensu.
Dzięki.
Dziękuję za tę odpowiedź. Więc Vmsize to ilość pamięci faktycznie dostępnej dla aplikacji? Jeśli chcę uzyskać bieżące wykorzystanie pamięci przez moją aplikację, co powinienem wziąć? "VmRSS: Resident set size" byłby dobrym kandydatem? Czy ta wartość zawiera również biblioteki? Chcę wziąć wszystkie segmenty na konto, kod, dane, stos i stertę dla aplikacji i jej bibliotek. Dziękuję. – rubymonk
Tak, RSS jest liczbą pamięci fizycznej aktualnie używanego procesu, ale nie uwzględnia zamiany (która jest prezentowana przez VmSwap). –