จะบันทึกการโหลดของ CPU ได้อย่างไร


คำตอบ:


42

วิธีนี้ใช้งานได้ดีมาก:

 while true; do uptime >> uptime.log; sleep 1; done
  • นี้จะเข้าสู่ระบบการโหลด CPU uptime.logของคุณทุกวินาทีและผนวกไปยังแฟ้ม

    จากนั้นคุณสามารถนำเข้าไฟล์นี้ลงใน Gnumeric หรือสเปรดชีต OpenOffice เพื่อสร้างกราฟที่ดี (เลือก 'คั่นด้วยช่องว่าง' เมื่อนำเข้า)

ดังที่ Scaine สังเกตเห็นสิ่งนี้จะไม่เพียงพอที่จะวินิจฉัยปัญหาได้ ดังนั้นนอกจากนี้เรียกใช้นี้ (หรือใช้คำตอบของเขาสำหรับส่วนนี้):

while true; do (echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail) >> ps.log; sleep 5; done
  • สิ่งนี้จะผนวกกระบวนการที่หิวมากที่สุด 10 อันดับของ CPU เข้ากับไฟล์ps.logทุก ๆ ห้าวินาที

    โปรดทราบว่านี่ไม่ใช่ข้อมูลเรือเต็มรูปแบบที่topจะให้คุณ นี่เป็นเพียง 10 อันดับแรกและเพียงแค่การใช้งาน CPU, การใช้งานหน่วยความจำและอาร์กิวเมนต์แรก (เช่นคำสั่งของพวกเขาโดยไม่มีข้อโต้แย้งเพิ่มเติมเช่นใน/usr/bin/firefox)

หลังจากที่คุณใช้สเปรดชีตเพื่อสร้างกราฟเพื่อดูเวลาที่โหลด CPU ของคุณผ่านหลังคาคุณสามารถค้นหาไฟล์นี้เพื่อดูเวลาที่ใกล้ที่สุดเพื่อดูว่ากระบวนการใดทำให้เกิดปัญหา

นี่คือลักษณะของไฟล์เหล่านั้น:

uptime.log

~$ cat uptime.log 
 22:57:42 up 1 day,  4:38,  4 users,  load average: 1.00, 1.26, 1.21
 22:57:43 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:44 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:45 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 ...

ps.log

%CPU %MEM ARGS Mo 17. Jan 23:09:47 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.1  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
%CPU %MEM ARGS Mo 17. Jan 23:09:48 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.0  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
 ...

3
สิ่งนี้จริง ๆ แล้วพิมพ์การใช้งาน CPU ที่ถูกต้องหรือไม่? ฉันลองสิ่งนี้ใน centos และมีเพียงการใช้งานหน่วยความจำที่ถูกต้อง :(
Menelaos Bakopoulos

ฉันจะทำให้คำสั่งนี้ทำงานบน VPS ของฉันได้อย่างไรหลังจากที่ฉันปิดการเชื่อมต่อที่ฉาบ
Lucas Bustamante

1
หากการใช้งาน CPU ที่รายงานโดยpsไร้สาระให้ลองเรียกใช้เป็นรูท
Stefano Palazzo

ฉันจะทำให้คำสั่งนี้ทำงานบน VPS ของฉันได้อย่างไรหลังจากที่ฉันปิดการเชื่อมต่อที่ฉาบอยู่ ????
Mostafa

10

คุณสามารถเรียกใช้topคำสั่งในโหมดแบตช์โดยใช้-bตัวเลือกจากนั้นถ่ายโอนข้อมูลนั้นไปยังไฟล์

เมื่อเริ่มต้นพีซีของคุณเปิดเทอร์มินัลรัน

top -b > ~/cpu.txt

จากนั้นเมื่อพีซีของคุณค้างให้เปิดไฟล์ข้อความ (อาจใหญ่) และตรวจสอบรายการสุดท้ายเพื่อดูรายละเอียดเกี่ยวกับสิ่งที่ทำงานก่อนเกิดความผิดพลาด ในความเป็นจริงไฟล์จะมีขนาดใหญ่มากจนคุณควรจะใช้tail -250 ~/cpu.txtแทน

ตรวจสอบ /var/log/kern.log ของคุณในกรณีที่ปัญหาของคุณเกี่ยวข้องกับฮาร์ดแวร์ (ไม่น่าเป็นไปได้ว่าเกิดขึ้นหลังจากการอัปเกรดเท่านั้น



0

สำหรับผู้ที่ต้องการเรียกใช้คำสั่งนี้หลังจากเซสชัน putty (ไคลเอ็นต์ SSH) สิ้นสุด คุณสามารถใช้คำสั่งscreen(หรือติดตั้งโดยใช้apt-get)

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