เครื่องมือง่ายๆในการใช้กราฟหน่วยความจำ?


14

มีสคริปต์ที่จะแสดงการใช้หน่วยความจำเป็นกราฟเช่นแผนภูมิวงกลมโดยที่แต่ละกระบวนการเป็นชิ้นแยกกันหรือไม่

ฉันไม่ได้มองหาบางอย่างเช่นMuninเพื่อทำกราฟการใช้หน่วยความจำเมื่อเวลาผ่านไป แต่จะแสดงการใช้หน่วยความจำต่อกระบวนการในเวลาเดียว

เพื่อให้คำขอของฉันชัดเจนยิ่งขึ้นมันมีไว้สำหรับเซิร์ฟเวอร์แบบไม่มีส่วนหัว (ไม่มีแอปพลิเคชัน X) วิธีที่ง่ายที่สุดคือการเขียนไฟล์ PNG หรืออาจเป็นไฟล์ HTML (ซึ่งอาจใช้ Javascript เพื่อให้สามารถกรองกระบวนการเปลี่ยนระหว่างกราฟชนิดและอื่น ๆ )

คำตอบ:


13

การบัญชีตามกระบวนการหน่วยความจำนั้นยุ่งยากด้วยเหตุผลหลายประการที่ฉันจะได้รับในหนึ่งนาที สำหรับการตรวจสอบอย่างง่ายสคริปต์ gkrellmd หรือ nagios น่าจะเพียงพอ หากคุณต้องการความแม่นยำมากขึ้นคุณจะต้องดูให้หนักขึ้น

smemแนะนำแนวคิดของProportional Set Size :

เนื่องจากโดยทั่วไปแล้วส่วนใหญ่ของหน่วยความจำกายภาพจะถูกใช้ร่วมกันในหลาย ๆ แอปพลิเคชันการวัดมาตรฐานการใช้งานหน่วยความจำที่รู้จักกันในชื่อชุดขนาดอาศัย (RSS) จะทำให้การใช้งานหน่วยความจำสูงเกินไปอย่างมีนัยสำคัญ PSS จะวัดการ "แบ่งปันที่ยุติธรรม" ของแต่ละแอปพลิเคชันในแต่ละพื้นที่ที่ใช้ร่วมกัน

ตัวอย่าง: คุณเริ่ม GNOME ทำให้กระบวนการหลายอย่างเริ่มต้นกระบวนการหนึ่งสำหรับแต่ละแอปเพล็ตและโปรแกรม พวกเขาทั้งหมดเชื่อมโยงไปยัง libglib Linux จะโหลด libglib ลงในหน่วยความจำหนึ่งบล็อกและแมปลงในทุกกระบวนการที่ต้องการ libglib การบัญชีหน่วยความจำที่ไร้เดียงสาจะนับขนาด libglib เต็มกับทุกกระบวนการที่เชื่อมโยง

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

  1. แสดงข้อมูลกระบวนการพื้นฐาน
  2. แสดงมุมมองระบบ smem -R 4G -K / path / to / vmlinux -w
  3. แสดงผลรวมและเปอร์เซ็นต์ smem -t -p
  4. แสดงคอลัมน์ต่าง ๆ smem -c "name user pss"
  5. แสดงกระบวนการที่กรองโดยการจับคู่ smem -M libxml
  6. แสดงการแมปที่กรองโดยกระบวนการ smem -m -P [e] การระเหย
  7. อ่านข้อมูลจากการจับ tarball smem --source capture.tar.gz
  8. แสดงแผนภูมิแท่งที่กำกับโดย pid smem --bar pid -c "pss uss"
  9. แสดงแผนภูมิวงกลมของ RSS ที่มีป้ายกำกับโดย name smem --pie name -s rss

อย่างไรก็ตามคุณจะต้องใช้เคอร์เนลรุ่นล่าสุด (> 2.6.27)


1
ใช่ข้อเสนอแนะของพวกเขาว่า 2.6.27 เป็นสิ่งที่ค่อนข้างมีเหตุผลเมื่อเร็ว ๆ นี้ค่อนข้างน่าหัวเราะ distros เดียวที่ฉันรู้ว่ามาพร้อมกับเคอร์เนลรุ่นใหม่คือ Fedora 10 และ Ubuntu 9.01
Dave Cheney

9.04; Ubuntu 8.10 มาพร้อมกับ 2.6.27 แต่ 2.6.30 อยู่ใน rc3
jldugger

ฉันขอโทษที่ฉันใช้เวลานานในดินแดน RHEL ซึ่ง 2.6.18 ถือว่าเป็นช่วงที่ผ่านมา
Dave Cheney

5

ไม่สามารถคิดอะไรจากชั้นวาง

อย่างไรก็ตามคอมโบของสคริปต์ PHP กำลังเรียกใช้ps -AH v | awk '{พิมพ์ $ 8, $ 9, $ 10}'และการใช้สิ่งนั้นด้วยpChartสามารถให้เว็บเพจที่จะทำสิ่งที่คุณต้องการได้หรือไม่ (การใช้งานใน Kb เปอร์เซ็นต์ของผลรวมและชื่อกระบวนการ)


1
+1, ฉันคิดเรื่องนี้ด้วย google chart api :)
โหนด

จุดดี. Google API แผนภูมิอาจจะเร็วไปทำงานอยู่กับ ...
มาร์ค Regensberg

2

ดูที่sarface - ขึ้นอยู่กับข้อมูล sar และคุณสามารถตรวจสอบการใช้งานหน่วยความจำของคุณ (และข้อมูลอื่น ๆ sar / sysstat)



1

ทำด้วยตัวคุณเอง. สร้างเชลล์สคริปต์อย่างง่ายเพื่ออัพเดตฐานข้อมูล RRD จากนั้นวาดกราฟโดยใช้ rrdtool


1

หากคุณอยู่ในระดับต่ำกว่าของรายละเอียดอย่าลืมรวบรวม นี่คือตัวอย่างประเภทของการใช้หน่วยความจำต่อกระบวนการที่สามารถรายงานได้:

บันทึก 1 cag-dl585-02 (1244758290.002) (พฤ 11 มิ.ย. 18:11:30 น.)

สรุปกระบวนการ (ตัวนับ / วินาที)
# ผู้ใช้ PID S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF คำสั่ง MinF
 9089 root S 66856K 0 2328K 1440K 212K 736K 6812K 0 0 sendmail:
 9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 sendmail:
 9108 root S 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
 9120 root S 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond
 9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs

หากคุณสนใจกระบวนการเฉพาะคุณสามารถระบุตัวกรองที่เหมาะสม (รวมถึงสวิตช์เพื่อแสดงชุดข้อความ)

และถ้าคุณสนใจในหน่วยความจำโดยทั่วไปก็ยังสามารถแสดงรายละเอียดพื้นและยังมีการส่งออกรูปแบบ vmstat ทำไมคุณต้องการแสดงข้อมูลในรูปแบบ vmstat เมื่อเครื่องมือที่มีอยู่แล้วทำเช่นนั้น? ง่ายมากด้วยการรวบรวมคุณสามารถบันทึกสถิติไปยังไฟล์และเล่นในภายหลังในหลายรูปแบบ

ลองคุณจะชอบมัน


1
  1. grep กระบวนการ
  2. แยกวิเคราะห์ผลลัพธ์และบันทึกในรูปแบบที่คั่นด้วยเครื่องหมายจุลภาคในไฟล์ข้อความ
  3. เปิดไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคใน excel
  4. วาดกราฟสำหรับข้อมูลนั้นโดยใช้ยูทิลิตีแผนภูมิของ excel

หากคุณต้องการสแนปชอตของหน่วยความจำในช่วงเวลาที่ต่างกัน ... ให้ตั้งค่า cron ที่ช่วงเวลาที่ต้องการและรันสคริปต์

หวังว่าจะช่วย ....





0

ฉันไม่ได้รับรายละเอียดเพิ่มเติม แต่ collectl มีตัวเลือกสำหรับสร้างตัวคั่นเอาต์พุตแยกดังนั้นในกรณีของ gnuplot คุณเพียงแค่สร้างข้อมูลของคุณด้วยช่องว่างในตัวและคุณก็พร้อมแล้ว มันจะโหลดลงใน excel อย่างดี ถ้าคุณต้องการคอมม่าคุณสามารถเปลี่ยนตัวคั่นและถ้าคุณต้องการที่จะทำเส้นทาง rrd (โปรดระวังเพราะพล็อตไม่จำเป็นต้องตรงกับข้อมูล!) คุณสามารถเปลี่ยน delimeter เป็น colons และเปลี่ยน timestamps เป็น UTC -เครื่องหมาย


0

kSar อิงตาม sar data แต่เป็นแบบ java ดังนั้นแพลตฟอร์มจึงมีความเป็นอิสระมากขึ้นและน้อยลงและจะอนุญาตให้คุณ ssh ไปยังรีโมตโฮสต์เพื่อดึงข้อมูล

http://ksar.atomique.net/


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