Mirip dengan pertanyaan Bagaimana cara memuat CPU? , Saya ingin mencatat memori suatu proses.
Proses yang saya ingin log, terbunuh di server jauh, dan saya ingin mengetahui beban CPU dan penggunaan memori sebelum itu terbunuh.
[memperbarui]
Baik skrip python kecil Stefano Palazzo dan
Nilai output satu baris Michał yang lebih kecil dari pada top
untuk CPU dan Mem. Apakah Anda punya ide mengapa?
Output atas:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2312 schXX 20 0 1241m 328m 58m S 100 0.3 11:56.68 MATLAB
tampilkan skrip python Stefano Palazzo:
python memlogger.py 2312
%CPU %MEM
76.00 0.20
76.00 0.20
command-line
cpu-load
logging
memory-usage
Framester
sumber
sumber
ps
mungkin berbeda daritop
: stackoverflow.com/questions/131303/…Jawaban:
Anda dapat membuat satu-liner di shell:
untuk login proses dengan pid = 123 saja:
atau untuk melihat dan menulis log ke file:
Jika Anda ingin data lain dicatat, ubah
-o {this}
opsi. Lihatman ps
bagian "SPESIFIKASI FORMAT STANDAR" untuk parameter yang tersedia untuk digunakan. Jika Anda menginginkan resolusi waktu yang berbeda, ubahsleep {this}
fungsinyalogpid()
.sumber
Jika Anda tepat setelah
top
statistik, Anda bisa menjalankantop
dalam mode batch menentukan pid dari proses yang Anda cari. Mengambil contoh dari halaman ini ( http://www.dedoimedo.com/computers/linux-cool-hacks.html ) jika Anda mengetikAnda akan "memiliki top running dalam mode batch (-b). Ini akan di-refresh setiap 10 detik, sebagaimana ditentukan oleh flag delay (-d), untuk jumlah total 3 iterasi (-n). Output akan dikirim ke file. " Termasuk
-p
Anda dapat menentukanpid
proses yang Anda inginkan. Ini tentu saja akan mengembalikan lebih dari cpu dan ram murni tetapi akan berisi bidang-bidang itu. Dalam kasus saya misalnya saya akan mendapatkan yang berikut saat memantau pid 9189 menggunakantop -b -d 10 -n 3 -p 9189 >> ~/top-file
:sumber
watch
sepertinya tidak ideal untuk saya untuk ini: superuser.com/questions/281347/filtering-top-command-outputSkrip python sederhana ini harus melakukan apa yang Anda inginkan:
Pertama-tama Anda perlu mengetahui id proses dari program yang ingin Anda pantau, kemudian Anda dapat menjalankan skrip dengan PID sebagai argumen:
Ini akan mencetak penggunaan CPU dan penggunaan ram dalam persen dua kali per detik:
Anda kemudian dapat mengarahkan outputnya ke file untuk mengimpornya ke spreadsheet nanti (
python log.py 9391 > firefox_log.txt
) dan mengimpor data ke dalam spreadsheet yang dipilihTab
sebagai pemisah Anda.Program berhenti ketika Anda menekan Ctrl + C atau ketika prosesnya dimatikan.
sumber