Score:4

การค้นหาการใช้หน่วยความจำ Linux ลึกลับ - ไม่ใช่แคชหรือพื้น (หรือบอลลูน?)

ธง ro

ฉันมี Xen VM ที่ใช้ Debian Linux โดยใช้ RAM จำนวนมากอย่างน่าประหลาด อะไรคือผู้ร้าย? ฉันเชื่อว่าฉันได้ขจัดข้อสงสัยทั่วไปเกี่ยวกับการแคชดิสก์ การใช้เคอร์เนล Slab และการเพิ่มหน่วยความจำ

ฟรี -h แสดง:

               รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
หน่วยความจำ: 3.8Gi 3.6Gi 87Mi 0.0Ki 55Mi 33Mi
สลับ: 1.0Gi 275Mi 748Mi

ดังนั้นจึงใช้ RAM ขนาด 3.8 GiB เกือบทั้งหมดของ VM และการใช้งานเพียงเล็กน้อยนั้นมาจากดิสก์แคชของเคอร์เนล

smem -kt ไม่ได้ระบุหน่วยความจำกับกระบวนการใด ๆ :

  สลับคำสั่งผู้ใช้ PID USS PSS RSS 
   ®
--------------------------------------------- -----------------------------
   52 1 214.4M 128.4M 133.2M 146.6M 

smem -w -kt กล่าวว่าหน่วยความจำเป็นของเคอร์เนล:

พื้นที่แคชที่ใช้ ไม่ใช่แคช 
เฟิร์มแวร์/ฮาร์ดแวร์ 0 0 0 
ภาพเคอร์เนล 0 0 0 
หน่วยความจำไดนามิกเคอร์เนล 3.6G -20205568.0 3.6G 
หน่วยความจำ userspace 133.6M 77.6M 56.0M 
หน่วยความจำว่าง 87.8M 87.8M 0 
--------------------------------------------- --------
                               3.8G 146.1M 3.6G 

(นอกจากนี้จำนวนลบนั้นดูแปลก ๆ )

/proc/meminfo กล่าวเหนือสิ่งอื่นใดว่าตัวจัดสรร kernel slab รับผิดชอบการใช้ RAM ประมาณ 95 MiB เท่านั้น (และไม่ได้ให้ข้อบ่งชี้เกี่ยวกับสิ่งที่ เป็น ใช้แรม):

MemTotal: 3973392 kB
MemFree: 89144 กิโลไบต์
หน่วยความจำที่มีอยู่: 41860 kB
บัฟเฟอร์: 5084 กิโลไบต์
แคช: 37972 กิโลไบต์
สลับแคช: 30,000 กิโลไบต์
ใช้งานอยู่: 52356 กิโลไบต์
ไม่ใช้งาน: 77832 กิโลไบต์
ใช้งานอยู่(ไม่ใช้งาน): 30756 kB
ไม่ใช้งาน (ไม่ใช้งาน): 56396 kB
ใช้งานอยู่(ไฟล์): 21600 kB
ไม่ใช้งาน (ไฟล์): 21436 kB
ไม่สามารถหลีกเลี่ยงได้: 80 kB
ล็อกไว้: 80 kB
SwapTotal: 1048572 กิโลไบต์
SwapFree: 775576 ​​กิโลไบต์
สกปรก: 104 กิโลไบต์
การเขียนกลับ: 0 kB
AnonPages: 78660 kB
แมป: 91004 kB
ชัม: 20 kB
KReclaimable: 28348 kB
พื้น: 96740 กิโลไบต์
SReclaimable: 28348 kB
SUnreclaim: 68392 กิโลไบต์
KernelStack: 4288 กิโลไบต์
PageTables: 6768 กิโลไบต์
NFS_Unstable: 0 กิโลไบต์
การตีกลับ: 0 กิโลไบต์
WritebackTmp: 0 กิโลไบต์
CommitLimit: 3035268 กิโลไบต์
Commit_AS: 1697316 กิโลไบต์
VmallocTotal: 34359738367 กิโลไบต์
VmallocUsed: 10028 กิโลไบต์
VmallocChunk: 0 กิโลไบต์
ประสิทธิภาพ: 2352 kB
ฮาร์ดแวร์เสียหาย: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 กิโลไบต์
ShmemPmdMapped: 0 กิโลไบต์
FileHugePages: 0 กิโลไบต์
FilePmdMapped: 0 กิโลไบต์
CmaTotal: 0 กิโลไบต์
CmaFree: 0 กิโลไบต์
HugePages_Total: 0
HugePages_ฟรี: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
ขนาดหน้าใหญ่: 2048 kB
Hugetlb: 0 กิโลไบต์
DirectMap4k: 428032 กิโลไบต์
DirectMap2M: 3799040 กิโลไบต์
DirectMap1G: 0 กิโลไบต์

ถ้าฉันเข้าใจหน่วยความจำ Xen ถูกต้อง ระบบจะไม่สูญเสีย RAM มากไปกับการเติมหน่วยความจำ /sys/devices/system/xen_memory/xen_memory0/info/current_kb ประกอบด้วย 4079228ซึ่งตรงกับ RAM ที่ระบบรายงานมาพอดีๆ ในไดเรกทอรีเดียวกัน สูง_kb และ low_kb บรรจุ 0 และ 16384ตามลำดับ ฉันเชื่อว่านั่นหมายความว่าไดรเวอร์บอลลูน Xen อ้างสิทธิ์ RAM เพียง 16 MiB เท่านั้น

ฉันพลาดอะไรไป มีอะไรอีกบ้างที่สามารถใช้หน่วยความจำของระบบได้มากขนาดนี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา