วิธีตรวจสอบจำนวนหน่วยความจำที่กระบวนการ Solaris ใช้อยู่? ฉันต้องการจัดสรรพื้นที่ที่อยู่ทั้งหมดและจำนวนที่อยู่ใน RAM
ฉันพยายามรวมเอาท์พุท pmap ด้วยสคริปต์ awk แต่มันแฮ็คที่น่าเกลียด มีวิธีที่ดีกว่าในการเขียนสคริปต์หรือไม่
วิธีตรวจสอบจำนวนหน่วยความจำที่กระบวนการ Solaris ใช้อยู่? ฉันต้องการจัดสรรพื้นที่ที่อยู่ทั้งหมดและจำนวนที่อยู่ใน RAM
ฉันพยายามรวมเอาท์พุท pmap ด้วยสคริปต์ awk แต่มันแฮ็คที่น่าเกลียด มีวิธีที่ดีกว่าในการเขียนสคริปต์หรือไม่
คำตอบ:
prstat -s rss
'-s' เรียงลำดับ prstat เอาต์พุตตามคอลัมน์ rss (ดูหน้า man สำหรับคอลัมน์อื่น ๆ ) ลองตัวเลือก '-a' เพื่อการสะสมต่อผู้ใช้
ps -eo pid,pmem,vsz,rss,comm | sort
-rnk2 | head
ผู้บริโภคแรม 10 อันดับแรก '-o pmem' แสดงเปอร์เซ็นต์ของหน่วยความจำภายในเช่น RAM ที่ใช้โดยกระบวนการ
ls -lh /proc/{pid}/as
วิธีง่ายๆในการแสดงพื้นที่ที่อยู่ทั้งหมด (vsz) ของกระบวนการ มีประโยชน์เมื่อใช้ร่วมกับ pgrep เพื่อสะสมโดยผู้ใช้, รูปแบบ, ... เช่น:
for pid in `pgrep -U webserver`; do ls -lh /proc/$pid/as; done
หลังจากฉันอ่านหน้าคนฉันก็มีดังต่อไปนี้
ps -o vsz -p $PID | tail -1
มันค่อนข้างตรงไปตรงมา รูปแบบสำหรับขนาดที่อยู่อาศัยคือ RSS
prstat
หรืออาจเป็นสคริปต์ dtrace
ฉันใช้รูปแบบของผลลัพธ์นี้ในสคริปต์:
# prstat -Z 1 1 | tail -3
ZONEID NPROC SWAP RSS MEMORY TIME CPU ZONE
220 56 1057M 413M 0.3% 1:26:49 0.1% 820f6ce5-7e37-4455-80ab-b28c5de19b43
Total: 56 processes, 169 lwps, load averages: 0.07, 0.06, 0.06
$ .02 ของฉันในฐานะผู้จัดการชุมชน Zenoss ...
Zenoss สามารถตรวจสอบสถานะของอุปกรณ์เครือข่ายและเซิร์ฟเวอร์ทั้งหมดของคุณรวมถึงกระบวนการทำงานบนเซิร์ฟเวอร์ของคุณ หนึ่งในสมาชิกชุมชนของเราได้ส่งการตรวจสอบกระบวนการสำหรับโซลาริสผ่าน SNMP: http://community.zenoss.org/docs/DOC-5882