Bagaimana cara log CPU memuat ke file untuk menyelidiki masalah?
sumber
Bagaimana cara log CPU memuat ke file untuk menyelidiki masalah?
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.log
setiap lima detik.
Perhatikan bahwa ini bukan muatan penuh informasi yang top
akan 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
...
ps
tidak masuk akal, coba jalankan sebagai root.Anda dapat menjalankan
top
perintah dalam mode batch dengan menggunakan-b
opsi, 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).
sumber
Saya menemukan jawaban yang bagus oleh Christopher untuk pertanyaan ini di Unix dan Linux yang menggunakan
top
:Ini akan memberi Anda 1 iterasi untuk
top
kemudian berhenti, dan kemudian dorong ke file.sumber
Bagi mereka yang perlu menjalankan perintah ini setelah sesi dempul Anda (klien SSH) berakhir. Anda dapat menggunakan perintah
screen
(atau menginstalnya menggunakanapt-get
)sumber