วิธีการตรวจสอบหน่วยความจำที่ใช้โดยกระบวนการ


16

ฉันมีกระบวนการที่ฉันต้องการดูจำนวนหน่วยความจำที่ใช้ในขณะที่กำลังทำงานอยู่

ตอนนี้ฉันทำสิ่งนี้:

ps faux | grep casper

แต่นั่นก็ให้ข้อมูลของฉันในเวลานั้น มันเป็นการดีที่ได้เห็นการเปลี่ยนแปลงค่าเมื่อสคริปต์ดำเนินการ

ทางใดที่ฉันสามารถทำได้

คำตอบ:


15

วิธีที่ 1

วิ่ง:

top

ตรวจสอบ PID ของโปรแกรม (คอลัมน์แรก) จากนั้นเรียกใช้:

top -p PID

วิธีที่ 2

วางสิ่งนี้ลงในเทอร์มินัลหรือบันทึกเป็น mem_usage.sh และรันจากเทอร์มินัล

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done

1
คุณจะเปลี่ยนมันจากการแสดง% ได้อย่างไร? ไม่สนใจ :-)
Wilf

ฉันได้รับสิ่งนี้เมื่อเรียกใช้สคริปต์: bash: ./memory_usage.sh: bin / bash: ล่ามที่ไม่ดี: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
Hommer Smith

Bah! ฉันแก้ไขมันแล้ว! ควรตรวจสอบอย่างถูกต้องก่อนโพสต์ บรรทัดแรกควรจะพูดว่าการที่จะเรียกใช้จาก / bin / ทุบตี (ฉันมี bin / ทุบตีจึงถูกตรวจสอบในประเทศในโฟลเดอร์ที่เรียกว่าถังสำหรับทุบตี)
จูเลียนสเตอร์ลิง

1
@ wilf ps faux | grep casper awk '{print $ 11} {print $ 6}' ซึ่งจะให้ชื่อโปรแกรมและขนาดหน่วยความจำจริงต่อไปในบรรทัดเดียว
Julian Stirling

6

ในการตรวจสอบเฉพาะกระบวนการของคุณคุณสามารถตรวจสอบ / proc / PID / สถานะหรือ / proc / PID / statm

เกี่ยวกับ / proc / PID / statm:

หลังจากทำcat /proc/PID/statmคุณควรเห็นสิ่งนี้:

611450 185001 883 18 0 593431 0

คำอธิบาย:

  1. ขนาด: - ขนาดโปรแกรมทั้งหมด (611450 X 4096/1024 = 2445800kB = 2388M)
  2. ถิ่นที่อยู่: - ขนาดชุดที่อยู่อาศัย (185001 X 4096/1024 = 740004kB = 722M)
  3. แชร์: - เพจที่ใช้ร่วมกัน (883 X 4096 = 3532)
  4. trs: - ข้อความ (รหัส) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - data / stack
  6. lrs: - ไลบรารี (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - หน้าสกปรก

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


4

คุณสามารถใช้การใช้ 'ด้านบน'

man top

โปรแกรมนี้ช่วยให้คุณสามารถเรียงลำดับการใช้ทรัพยากรตามกลุ่มอื่น ๆ RSS, VSZ, CPU และอื่น ๆ มันมีประโยชน์มาก

หรือหากต้องการรายละเอียดเพิ่มเติมของการใช้หน่วยความจำให้ลอง 'pmap'

man pmap

ตัวอย่างการใช้งาน:

pmap -x 1234

ไชโย

SC


1
ด้วยpmap -x PIDคุณหมายถึงการใช้งานอย่างละเอียดอย่างไม่น่าเชื่อ :-)
วิลฟ์

แน่นอน - ไม่สามารถมีรายละเอียดมากพอ :)
ชาวสวิส

1
ในเหมือง (Ubuntu 16.04.5 LTS) "pmap -x" ด้วย PID จะไม่แสดงสิ่งใดนอกจาก PID และคำสั่ง -X ทำเช่นเดียวกัน
orrd


1

ลองทำดู:

watch 'ps faux | grep -v grep | grep casper'

นอกจากนี้คุณยังสามารถเปลี่ยนช่วงเวลารีเฟรชโดยใช้--interval <seconds>พารามิเตอร์


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