ฉันกำลังพิมพ์เชลล์สคริปต์เพื่อค้นหาหน่วยความจำฟิสิคัลทั้งหมดในกล่องลินุกซ์ RHEL บางกล่อง
แรกของทั้งหมดที่ผมอยากจะเน้นว่าฉันสนใจในหน่วยความจำกายภาพทั้งหมดได้รับการยอมรับโดย kernel ไม่เพียง แต่หน่วยความจำ ดังนั้นโปรดหลีกเลี่ยงการตอบแนะนำในการอ่าน/ proc / meminfoหรือใช้ฟรี , ด้านบนหรือsarคำสั่ง - ในทุกกรณีเหล่านี้ของพวกเขา " หน่วยความจำทั้งหมด " ค่าหมายถึง " หน่วยความจำ " คน
ความคิดแรกคือการอ่านข้อความบูตเคอร์เนล:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
แต่ในบางกล่องลินุกซ์เนื่องจากการใช้ซอฟแวร์ PowerPath EMC2 และของน้ำท่วมข้อความบูตในการเริ่มต้นเคอร์เนลว่าข้อความบูตเคอร์เนลที่มีประโยชน์ไม่สามารถใช้งานได้แม้ใน/ var บันทึก dmesg / /ไฟล์
ตัวเลือกที่สองคือคำสั่งdmidecode (ฉันได้รับคำเตือนเกี่ยวกับความไม่ตรงกันที่เป็นไปได้ของ RAM ที่รู้จักกับเคอร์เนลและแรมจริงเนื่องจากข้อ จำกัด ของเมล็ดและสถาปัตยกรรมรุ่นเก่าบางส่วน) ตัวเลือก--memoryช่วยลดความยุ่งยากสคริปต์ แต่ฉันรู้ว่ารุ่นเก่าของคำสั่งที่ไม่เคยมีใคร--memoryตัวเลือก
โอกาสสุดท้ายของฉันคือคำสั่งgetconf รายงานขนาดเพจหน่วยความจำ แต่ไม่ใช่จำนวนเพจฟิสิคัลทั้งหมด - ตัวแปรระบบ_PHYS_PAGESดูเหมือนจะเป็นเพจฟิสิคัลที่พร้อมใช้งานไม่ใช่เพจฟิสิคัลทั้งหมด
# getconf -a | grep หน้า หน้า 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
คำถามของฉัน: มีวิธีอื่นในการรับจำนวนหน่วยความจำฟิสิคัลทั้งหมดที่เหมาะสมที่จะแยกวิเคราะห์โดยเชลล์สคริปต์หรือไม่