Bagaimana cara mencatat beban CPU?

30

Bagaimana cara log CPU memuat ke file untuk menyelidiki masalah?

tommyk
sumber

Jawaban:

42

Ini bekerja dengan sangat baik:

 while true; do uptime >> uptime.log; sleep 1; done
  • Ini akan mencatat cpu Anda setiap detik dan menambahkannya ke file uptime.log.

    Anda kemudian dapat mengimpor file ini ke Gnumeric atau spreadsheet OpenOffice untuk membuat grafik yang bagus (pilih 'dipisahkan oleh spasi' saat impor).

Seperti yang diperhatikan Scaine, ini tidak akan cukup untuk mendiagnosis masalahnya. Jadi, jalankan juga ini (atau gunakan jawabannya untuk bagian ini):

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
  • Ini akan menambahkan 10 proses paling lapar CPU ke file ps.logsetiap lima detik.

    Perhatikan bahwa ini bukan muatan penuh informasi yang topakan diberikan kepada Anda. Ini hanya 10 teratas, dan hanya Penggunaan CPU, Penggunaan Memori dan argumen pertama (yaitu perintah mereka tanpa argumen lebih lanjut, seperti pada /usr/bin/firefox)

Setelah Anda menggunakan Spreadsheet untuk membuat grafik untuk melihat kapan beban CPU Anda melewati atap, Anda kemudian dapat mencari file ini untuk waktu terdekat untuk melihat proses apa yang menyebabkannya.

Seperti inilah tampilan file-file itu:

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
 ...
Stefano Palazzo
sumber
3
Apakah ini benar-benar mencetak penggunaan CPU yang benar ?? Saya mencoba ini pada centos dan hanya penggunaan memori yang benar :(
Menelaos Bakopoulos
Bagaimana saya bisa membuat perintah ini tetap berjalan di VPS saya bahkan setelah saya menutup koneksi Putty?
Lucas Bustamante
1
Jika penggunaan CPU yang dilaporkan pstidak masuk akal, coba jalankan sebagai root.
Stefano Palazzo
Bagaimana saya bisa membuat perintah ini tetap berjalan di VPS saya bahkan setelah saya menutup koneksi Putty ????
Mostafa
10

Anda dapat menjalankan topperintah dalam mode batch dengan menggunakan -bopsi, lalu membuangnya ke file.

Saat memulai PC Anda, buka terminal, jalankan

top -b > ~/cpu.txt

Kemudian ketika PC Anda macet, cukup buka file teks (mungkin besar) dan periksa entri terakhir untuk detail tentang apa yang sedang berjalan sebelum crash. Faktanya file tersebut akan sangat besar sehingga Anda lebih baik menjalankannya tail -250 ~/cpu.txt.

Juga periksa /var/log/kern.log Anda jika masalah Anda terkait dengan perangkat keras (tidak mungkin jika ini hanya terjadi setelah peningkatan, tetapi masih perlu diperiksa).

Scaine
sumber
0

Bagi mereka yang perlu menjalankan perintah ini setelah sesi dempul Anda (klien SSH) berakhir. Anda dapat menggunakan perintah screen(atau menginstalnya menggunakan apt-get)

Mostafa
sumber