การบัญชีตามกระบวนการหน่วยความจำนั้นยุ่งยากด้วยเหตุผลหลายประการที่ฉันจะได้รับในหนึ่งนาที สำหรับการตรวจสอบอย่างง่ายสคริปต์ gkrellmd หรือ nagios น่าจะเพียงพอ หากคุณต้องการความแม่นยำมากขึ้นคุณจะต้องดูให้หนักขึ้น
smemแนะนำแนวคิดของProportional Set Size :
เนื่องจากโดยทั่วไปแล้วส่วนใหญ่ของหน่วยความจำกายภาพจะถูกใช้ร่วมกันในหลาย ๆ แอปพลิเคชันการวัดมาตรฐานการใช้งานหน่วยความจำที่รู้จักกันในชื่อชุดขนาดอาศัย (RSS) จะทำให้การใช้งานหน่วยความจำสูงเกินไปอย่างมีนัยสำคัญ PSS จะวัดการ "แบ่งปันที่ยุติธรรม" ของแต่ละแอปพลิเคชันในแต่ละพื้นที่ที่ใช้ร่วมกัน
ตัวอย่าง: คุณเริ่ม GNOME ทำให้กระบวนการหลายอย่างเริ่มต้นกระบวนการหนึ่งสำหรับแต่ละแอปเพล็ตและโปรแกรม พวกเขาทั้งหมดเชื่อมโยงไปยัง libglib Linux จะโหลด libglib ลงในหน่วยความจำหนึ่งบล็อกและแมปลงในทุกกระบวนการที่ต้องการ libglib การบัญชีหน่วยความจำที่ไร้เดียงสาจะนับขนาด libglib เต็มกับทุกกระบวนการที่เชื่อมโยง
smem แบ่งค่า libglib ระหว่างกระบวนการที่ใช้เพื่อให้ได้ภาพที่ใกล้เคียงกับความเป็นจริงมากขึ้น นอกจากนี้ยังมีตัวเลือกมากมายเพื่อแสดงการใช้หน่วยความจำ (จากเว็บไซต์):
- แสดงข้อมูลกระบวนการพื้นฐาน
- แสดงมุมมองระบบ smem -R 4G -K / path / to / vmlinux -w
- แสดงผลรวมและเปอร์เซ็นต์ smem -t -p
- แสดงคอลัมน์ต่าง ๆ smem -c "name user pss"
- แสดงกระบวนการที่กรองโดยการจับคู่ smem -M libxml
- แสดงการแมปที่กรองโดยกระบวนการ smem -m -P [e] การระเหย
- อ่านข้อมูลจากการจับ tarball smem --source capture.tar.gz
- แสดงแผนภูมิแท่งที่กำกับโดย pid smem --bar pid -c "pss uss"
- แสดงแผนภูมิวงกลมของ RSS ที่มีป้ายกำกับโดย name smem --pie name -s rss
อย่างไรก็ตามคุณจะต้องใช้เคอร์เนลรุ่นล่าสุด (> 2.6.27)