W szczególności, czy proc
zawsze podaje wartość VmRSS kB
? Nie mogę znaleźć solidnej odpowiedzi w dokumentacji , chociaż wydaje się, że przylega do jednej jednostki.
W szczególności, czy proc
zawsze podaje wartość VmRSS kB
? Nie mogę znaleźć solidnej odpowiedzi w dokumentacji , chociaż wydaje się, że przylega do jednej jednostki.
Odpowiedzi:
Tak, zawsze w kB. Dokładność to KiB (1024 bajty, a nie 1000).
Przynajmniej w Linux 4.0 (i kod ten został w dużej mierze niezmienione od co najmniej kwietnia 2005-tych, kiedy Linus, który przełącza się git
, a ja nie dbam o to, aby sprawdzać dalej), że moc pochodzi z task_mem
wfs/proc/task_mmu.c
. Fragment kilku wierszy:
seq_printf(m,
"VmPeak:\t%8lu kB\n"
"VmSize:\t%8lu kB\n"
"VmLck:\t%8lu kB\n"
"VmPin:\t%8lu kB\n"
"VmHWM:\t%8lu kB\n"
"VmRSS:\t%8lu kB\n"
"VmData:\t%8lu kB\n"
"VmStk:\t%8lu kB\n"
"VmExe:\t%8lu kB\n"
"VmLib:\t%8lu kB\n"
"VmPTE:\t%8lu kB\n"
"VmPMD:\t%8lu kB\n"
"VmSwap:\t%8lu kB\n",
hiwater_vm << (PAGE_SHIFT-10),
⋮
);
Nie jestem pewien, czy potrafisz odczytać C, ale ten „kB” jest tam na stałe zakodowany. Nie ma logiki, aby wyprowadzać jakąkolwiek inną jednostkę.
fs/proc/meminfo.c
. (I proszę o przesłanie łatki na stronie podręcznika w celu wyjaśnienia.)
/proc/meminfo
?man 5 proc
nie jest tu do końca jasne.