Bir problemi araştırmak için CPU yükünü bir dosyaya nasıl kaydederim?
Bir problemi araştırmak için CPU yükünü bir dosyaya nasıl kaydederim?
Bu çok iyi çalışıyor:
while true; do uptime >> uptime.log; sleep 1; done
Bu işlem, cpu yüklemenizi her saniye kaydedip uptime.log
dosyasına ekler.
Daha sonra güzel bir grafik oluşturmak için bu dosyayı Gnumeric veya OpenOffice e-tablosuna içe aktarabilirsiniz (içe aktarma sırasında 'boşluklarla ayrılmış' seçeneğini seçin).
Scaine'ın fark ettiği gibi, bu sorunu teşhis etmek için yeterli olmayacaktır. Yani, ek olarak, bunu çalıştırın (veya bu bölüm için cevabını kullanın):
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
Bu, en çok 10 CPU açlık sürecini her beş saniyede bir ps.log
dosyasına ekler.
Bunun, top
bilgisinin size sağladığı tüm tekne yükü olmadığını unutmayın. Bu sadece en iyi 10 ve sadece onların CPU Kullanımı, Bellek Kullanımı ve ilk argümanıdır (yani, /usr/bin/firefox
'de olduğu gibi daha fazla argüman olmadan komutları)
CPU yükünüzün çatıdan ne zaman geçtiğini görmek için bir grafik oluşturmak üzere bir E-tablo kullandıktan sonra, bu dosyayı en son hangi zamanda aradığını ve hangi sürecin neden kaynaklandığını görebilirsiniz.
Bu dosyalar şöyle görünecek:
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
...
top
komutunu -b
seçeneğini kullanarak toplu iş modunda çalıştırabilir ve ardından bir dosyaya atabilirsiniz.
Bilgisayarınızın başlangıcında, bir terminal açın, çalıştırın
top -b > ~/cpu.txt
Sonra PC'niz donarsa, (muhtemelen büyük) metin dosyasını açın ve kilitlenmeden hemen önce çalışmakta olan bazı detaylar için son girişi kontrol edin. Aslında dosya o kadar aptalca olacak ki, bunun yerine tail -250 ~/cpu.txt
çalıştırmayı tercih etmelisiniz.
Ayrıca, sorununuzun donanımla ilgili olması durumunda /var/log/kern.log adresinizi de kontrol edin (bu yalnızca bir yükseltme sonrasında gerçekleşiyorsa, ancak yine de kontrol edilmeye değer).
Etiketlerdeki diğer soruları oku command-line cpu-load