Kernel sedikit keliru. Kernel Linux terdiri dari beberapa proses / utas + modul ( lsmod
) sehingga untuk mendapatkan gambaran lengkap Anda harus melihat keseluruhan bola dan bukan hanya satu komponen.
Tambang saya secara tidak sengaja menunjukkan slabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
Halaman manual untuk slabtop
juga mengatakan ini:
Header statistik slabtop melacak berapa byte slab yang digunakan dan itu bukan ukuran memori fisik. Kolom 'Slab' dalam file / proc / meminfo melacak informasi tentang memori fisik slab yang digunakan.
Menjatuhkan cache
Menjatuhkan cache saya seperti yang disarankan oleh @derobert dalam komentar di bawah pertanyaan Anda:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
Mengirim nomor 3 melakukan hal berikut: pagecache, gigi palsu, dan inode gratis. Saya membahas hal ini lebih lanjut dalam T&J T&J berjudul: Apakah ada cara atau alat untuk membuang cache dan buffer memori? "Jadi, 110MB ruang saya digunakan dengan hanya mempertahankan informasi tentang pagecache, gigi palsu dan inode.
informasi tambahan
- Jika Anda tertarik, saya menemukan posting blog ini yang membahas
slabtop
lebih detail. Itu berjudul: Perintah Linux hari ini: slabtop .
- Cache Slab dibahas secara lebih rinci di sini di Wikipedia, berjudul: Alokasi slab .
Jadi berapa banyak RAM yang digunakan Kernel saya?
Gambar ini agak foggier bagi saya, tetapi di sini ada hal-hal yang saya "pikir" kita tahu.
Lempeng
Kita bisa mendapatkan snapshot dari penggunaan Slab menggunakan teknik ini. Intinya kita dapat menarik informasi ini /proc/meminfo
.
$ grep Slab /proc/meminfo
Slab: 100728 kB
Modul
Kita juga bisa mendapatkan nilai ukuran untuk modul Kernel (tidak jelas apakah ukurannya dari pada disk atau ketika di RAM) dengan menarik nilai-nilai ini dari /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
Banyak rincian tentang SLAB yang dapat diakses dalam struktur proc ini, /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
Ketika sistem Anda boot ada baris yang melaporkan penggunaan memori dari kernel Linux setelah itu dimuat.
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
Referensi