เคอร์เนลเป็นบิตของการเรียกชื่อผิด เคอร์เนล Linux ประกอบด้วยโพรเซส / กระทู้ + โมดูล ( lsmod
) หลายชุดเพื่อให้ได้ภาพที่สมบูรณ์คุณจะต้องมองที่ลูกบอลทั้งหมดไม่ใช่แค่องค์ประกอบเดียว
แสดงให้เห็นว่าฉันตั้งใจslabtop
:
Active / Total Size (% used) : 173428.30K / 204497.61K (84.8%)
หน้าคนที่slabtop
มีสิ่งนี้ต้องพูดว่า:
ส่วนหัวของสถิติ slabtop กำลังติดตามจำนวนไบต์ของแผ่นพื้นที่กำลังใช้งานอยู่และไม่ใช่หน่วยความจำกายภาพ ฟิลด์ 'Slab' ในไฟล์ / proc / meminfo กำลังติดตามข้อมูลเกี่ยวกับหน่วยความจำฟิสิคัลของแผ่นพื้นที่ใช้
วางแคช
วางแคชของฉันตามที่@derobert แนะนำในความคิดเห็นภายใต้คำถามของคุณสำหรับฉันต่อไปนี้:
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$
Active / Total Size (% used) : 61858.78K / 90524.77K (68.3%)
การส่ง 3 ทำได้ดังนี้: รับ pagecache, dentries และ inodes ฟรี ฉันพูดคุยเรื่องนี้เพิ่มเติมในคำถาม & คำตอบ U & L นี้: มีวิธีหรือเครื่องมือใดในการถ่ายโอนข้อมูลแคชหน่วยความจำและบัฟเฟอร์หรือไม่ พื้นที่ว่างของฉันถูกใช้ไปแล้วเพียง 110MB โดยการรักษาข้อมูลเกี่ยวกับ pagecache, dentries และ inodes
ข้อมูลเพิ่มเติม
- หากคุณสนใจฉันพบโพสต์บล็อกนี้ที่กล่าวถึง
slabtop
ในรายละเอียดเพิ่มเติมอีกเล็กน้อย มันชื่อ: คำสั่ง Linux ของวันที่: slabtop
- เดอะแคช Slab จะหารือในรายละเอียดเพิ่มเติมได้ที่นี่ในวิกิพีเดียหัวข้อ: การจัดสรรพื้น
Kernel ของฉันใช้ RAM เท่าไหร่?
ภาพนี้เป็นสิ่งที่ฉันควรรู้ แต่นี่คือสิ่งที่ฉัน "คิด" ที่เรารู้
แผ่นหิน
เราจะได้ภาพรวมของการใช้ Slab โดยใช้เทคนิคนี้ /proc/meminfo
เป็นหลักที่เราสามารถดึงข้อมูลเหล่านี้ออกมาจาก
$ grep Slab /proc/meminfo
Slab: 100728 kB
โมดูล
นอกจากนี้เรายังสามารถรับค่าขนาดสำหรับโมดูลเคอร์เนล (ไม่ชัดเจนว่าเป็นขนาดจากดิสก์หรือเมื่ออยู่ใน RAM) โดยการดึงค่าเหล่านี้จาก/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 สามารถเข้าถึงได้ในโครงสร้าง 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
เมื่อบูทระบบของคุณจะมีบรรทัดที่รายงานการใช้หน่วยความจำของเคอร์เนล Linux หลังจากโหลดเสร็จ
$ dmesg |grep Memory:
[ 0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)
อ้างอิง