Jądro jest trochę mylące. Jądro Linux składa się z kilku procesów / wątków + modułów ( lsmod
), więc aby uzyskać pełny obraz, musisz spojrzeć na całą piłkę, a nie tylko na jeden komponent.
Nawiasem mówiąc, moje pokazy slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
Strona podręcznika man slabtop
również miała następującą informację:
Nagłówek statystyki slabtop śledzi, ile bajtów płyt jest używanych i nie jest miarą pamięci fizycznej. Pole „Slab” w pliku / proc / meminfo śledzi informacje o użytej pamięci fizycznej płyty.
Upuszczanie skrzynek
Upuszczenie moich pamięci podręcznych zgodnie z sugestią @derobert w komentarzach pod Twoim pytaniem ma dla mnie następujące znaczenie:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
Wysłanie 3 wykonuje następujące czynności: darmowy pagecache, dentries i i-węzły. Omawiam to więcej w tym pytaniu U&L zatytułowanym: Czy istnieją sposoby lub narzędzia do zrzucania pamięci podręcznej i bufora pamięci? ". Więc 110 MB mojej przestrzeni zostało wykorzystane tylko przez utrzymanie informacji o pagecache, dentries i i-węzłach.
Dodatkowe informacje
- Jeśli jesteś zainteresowany, znalazłem ten post na blogu, który omawia
slabtop
nieco więcej szczegółów. Nosi tytuł: Linux dnia: slabtop .
- Pamięć podręczna płyty jest omawiana bardziej szczegółowo tutaj na Wikipedii, zatytułowana: Przydział płyty .
Ile pamięci RAM używa moje jądro?
To zdjęcie jest dla mnie trochę bardziej zamglone, ale oto rzeczy, które „myślę”, że wiemy.
Płyta
Za pomocą tej techniki możemy uzyskać migawkę użycia płyty. Zasadniczo możemy wyciągnąć te informacje /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
Moduły
Możemy również uzyskać wartość rozmiaru dla modułów jądra (niejasne, czy jest to ich rozmiar na dysku, czy w pamięci RAM), pobierając te wartości z /proc/modules
:
$ awk '{print $1 " " $2 }' /proc/modules | head -5
cpufreq_powersave 1154
tcp_lp 2111
aesni_intel 12131
cryptd 7111
aes_x86_64 7758
Slabinfo
Wiele szczegółów na temat SLAB jest dostępnych w tej strukturze proc /proc/slabinfo
:
$ less /proc/slabinfo | head -5
slabinfo - version: 2.1
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
nf_conntrack_ffff8801f2b30000 0 0 320 25 2 : tunables 0 0 0 : slabdata 0 0 0
fuse_request 100 125 632 25 4 : tunables 0 0 0 : slabdata 5 5 0
fuse_inode 21 21 768 21 4 : tunables 0 0 0 : slabdata 1 1 0
Dmesg
Po uruchomieniu systemu pojawia się wiersz, który informuje o zużyciu pamięci przez jądro Linuksa zaraz po załadowaniu.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Bibliografia