Çekirdek biraz yanıltıcıdır. Linux çekirdeği birkaç işlemden / iş parçacığından + modüllerden ( lsmod
) oluşur, bu yüzden tam bir görüntü elde etmek için sadece tek bir bileşen değil tüm topa bakmanız gerekir.
Bu arada benimki gösterir slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
Man sayfası slabtop
da şunu söylemişti:
Levha istatistik istatistiği, kaç byte slab kullanıldığını ve fiziksel hafızanın ölçülmediğini takip ediyor. / Proc / meminfo dosyasındaki 'Slab' alanı, kullanılmış slabın fiziksel hafızası hakkındaki bilgileri izliyor.
Önbellek bırakma
Sorunuzu altındaki yorumlarda önbellekleri @derobert'in önerdiği gibi bırakmak benim için aşağıdakileri yapar:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
3 gönderme aşağıdakileri yapar: ücretsiz sayfa önbelleği, diş macunları ve inode'lar. Bunu daha fazla tartışacağım bu U&L Soru-Cevap bölümünde: Bellek önbelleğini ve arabelleğini boşaltmanın herhangi bir yolu veya aracı var mı? “. Bu yüzden alanımın 110 MB'ı sadece sayfa görüntüleme, dişçilik ve inode hakkındaki bilgileri koruyarak kullanılıyordu.
ek bilgi
- Eğer ilgileniyorsanız
slabtop
, biraz daha detaylı olarak tartışan bu blog gönderisini buldum . Bu başlıklı oluyor: Günün Linux komut: slabtop .
- Döşeme Önbelleği burada Vikipedi'de daha ayrıntılı olarak tartışılmaktadır: Başlık Döşeme tahsisi .
Peki, Çekirdeğim ne kadar RAM kullanıyor?
Bu resim benim için biraz sisli, ama işte bildiğim "düşündüğüm" şeyler.
Döşeme
Bu tekniği kullanarak Slab kullanımının bir görüntüsünü alabiliriz. Esasen bu bilgiyi çıkartabiliriz /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
Modüller
Ayrıca, Çekirdek modülleri için bir boyut değeri alabiliriz (bu değerleri çekerek diskten mi yoksa RAM'den mi geldiği belli değil) /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
SLAB ile ilgili detayların çoğuna bu proc yapısında erişilebilir /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
Sisteminiz önyüklendiğinde, yüklendikten hemen sonra Linux çekirdeğinin bellek kullanımını bildiren bir çizgi vardır.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Referanslar