ค้นหาหน่วยความจำทั้งหมดที่จัดสรรสำหรับกระบวนการเฉพาะใน Ubuntu


15

ฉันจะค้นหาหน่วยความจำทั้งหมดที่จัดสรรสำหรับกระบวนการเฉพาะใน Ubuntu ได้อย่างไร


1
คุณลอง ps -aefl แล้วดูที่คอลัมน์ SZ หรือไม่?
mdpc

2
คุณหมายถึงอะไรโดย "ค้นหาหน่วยความจำที่จัดสรร"? คุณต้องการทราบจำนวนหน่วยความจำที่กระบวนการใช้หรือไม่
Gilles 'หยุดความชั่วร้าย' ใน

คำตอบ:


14

ลอง:

pidof bash | xargs ps -o rss,sz,vsz

เพื่อค้นหาการใช้หน่วยความจำของbashเชลล์ปัจจุบันของคุณ(สมมติว่าคุณกำลังใช้bash) เปลี่ยนbashเป็นสิ่งที่คุณกำลังตรวจสอบ หากคุณอยู่ภายใต้กระบวนการใดกระบวนการหนึ่งให้ใช้ด้วยตัวเอง:

ps -o rss,sz,vsz <process id>

จากmanหน้า:

RSS: ขนาดชุดที่อยู่อาศัย, หน่วยความจำกายภาพที่ไม่ได้สลับที่งานใช้ (เป็นกิโลไบต์)

SZ: ขนาดในหน้าทางกายภาพของภาพหลักของกระบวนการ ซึ่งรวมถึงข้อความข้อมูลและพื้นที่สแต็ค

VSZ: ขนาดหน่วยความจำเสมือนของกระบวนการเป็น KiB (1024- ไบต์หน่วย)

manหน้าpsจะแสดงรายการทั้งหมดข้อโต้แย้งไปได้ที่จะ-oมีตัวเลือก (มีค่อนข้างน้อยให้เลือก) แทนที่จะ-o rss,szใช้vตัวเลือกลักษณะ BSD (ไม่มีเส้นประ) ซึ่งแสดงโครงร่างหน่วยความจำสำรอง


ขอบคุณ gareth ... คุณกำลังบอกว่า SZ มีการจัดสรรหน่วยความจำสำหรับกระบวนการนั้นหรือไม่?
Anjali

4
มีคุณภาพดีเป็นที่นี่ที่อธิบายความสัมพันธ์ระหว่างRSS, และSZ VSZ
garethTheRed

5

คุณสามารถใช้pmapซึ่งแสดงแผนที่หน่วยความจำของกระบวนการ:

pmap -p pid

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ดูหน้าคนman pmapหรือมีลักษณะที่pmap (1): รายงานแผนที่หน่วยความจำของกระบวนการ - หน้าคนลินุกซ์


0

วิธีการค้นหาหน่วยความจำทั้งหมดที่จัดสรรสำหรับกระบวนการเฉพาะในอูบุนตู?

คุณไม่ได้กำหนดสิ่งที่เป็นจัดสรรหน่วยความจำสำหรับกระบวนการและจริงว่าเป็นคำถามที่ซับซ้อนสวย (สิ่งที่เกี่ยวกับการแมปหน่วยความจำร่วม - ดูmmap (2)สำหรับรายละเอียด; สิ่งที่เกี่ยวกับหน่วยความจำที่ใช้ร่วมกัน POSIX - ดูshm_overview (7)มานาน สิ่งที่เกี่ยวกับบางหน้าในแคชหน้าใช้สำหรับเปิดไฟล์ ฯลฯ ... )

คุณสามารถใช้/proc/ระบบไฟล์ (ซึ่ง BTW ถูกใช้โดยps, pmap, top, htopฯลฯ .... ) อ่านproc (5)สำหรับข้อมูลเพิ่มเติม โดยเฉพาะอย่างยิ่งสำหรับกระบวนการของ pid 1234 คุณสามารถใช้/proc/1234/status, /proc/1234/statm, /proc/1234/mapsฯลฯ ... พวกเขาเป็นต้นฉบับเดิมหลอกไฟล์ทั้งหมด (บิตเช่นท่อ) ที่คุณสามารถมองเห็นได้ด้วยcat(หรืออ่านตามลำดับภายในโปรแกรมบางส่วน) BTW จากภายในโปรแกรมที่คุณอาจใช้/proc/self (ซึ่งเป็น symlink หลอก) เช่นอ่านตามลำดับ/proc/self/statusฯลฯ ...

ดูเพิ่มเติมLinuxAteMyRam

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.