Bagaimana cara memonitor memori yang dikonsumsi oleh suatu proses?

16

Saya memiliki proses yang saya ingin melihat berapa banyak memori yang dikonsumsi saat sedang berjalan.

Sekarang saya melakukan ini:

ps faux | grep casper

Tapi itu hanya memberi saya informasi saat itu. Akan menyenangkan untuk melihat bahwa nilai berubah ketika skrip berlanjut.

Adakah yang bisa saya lakukan ini?

Hommer Smith
sumber

Jawaban:

15

Metode 1

Lari:

top

Periksa PID program (kolom pertama), lalu jalankan:

top -p PID

Metode 2

Rekatkan ini ke terminal atau simpan sebagai mem_usage.sh dan jalankan dari terminal.

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done
Julian Stirling
sumber
1
Bagaimana Anda bisa mengubahnya dari menampilkan%? Tidak menarik :-)
Wilf
Saya mengerti ketika menjalankan skrip: bash: ./memory_usage.sh: bin / bash: bad interpreter: Tidak ada file atau direktori seperti itu
Hommer Smith
Bah! Saya telah mengeditnya! Seharusnya sudah memeriksanya dengan benar sebelum memposting. Baris pertama harus mengatakan di mana harus menjalankannya dari / bin / bash (saya punya bin / bash sehingga memeriksa secara lokal di folder bernama bin for bash)
Julian Stirling
1
@ wilf ps faux | grep casper | awk '{print $ 11} {print $ 6}' Itu seharusnya memberi Anda satu baris nama program dan selanjutnya ukuran memori nyata dalam kB.
Julian Stirling
6

Untuk memantau hanya proses Anda, Anda dapat memeriksa / proc / PID / status atau / proc / PID / statm.

Tentang / proc / PID / statm:

Setelah melakukan, cat /proc/PID/statmAnda akan melihat ini:

611450 185001 883 18 0 593431 0

Penjelasan:

  1. ukuran: - total ukuran program (611450 X 4096/1024 = 2445800kB = 2388M)
  2. resident: - ukuran set resident (185001 X 4096/1024 = 740004kB = 722M)
  3. bagikan: - halaman bersama (883 X 4096 = 3532)
  4. trs: - teks (kode) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - data / tumpukan
  6. lrs: - perpustakaan (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - halaman kotor

Anda juga dapat mencatat aktivitas memori untuk proses Anda melakukan loop menggunakan tanggal dan kucing.

yilmi
sumber
4

Anda bisa menggunakan 'top'

man top

Program ini memungkinkan Anda untuk mengurutkan penggunaan sumber daya, antara lain, RSS, VSZ, CPU, dll. Ini sangat berguna.

Atau, untuk perincian penggunaan memori yang lebih rinci, coba 'pmap'

man pmap

Contoh penggunaan:

pmap -x 1234

Bersulang

sc.

keju Swiss
sumber
1
Dengan pmap -x PID, maksud Anda penggunaan sangat rinci :-)
Wilf
memang - tidak pernah dapat memiliki cukup detail :)
swisscheese
1
Di tambang (Ubuntu 16.04.5 LTS) "pmap -x" dengan PID tidak menunjukkan apa pun selain PID dan perintah. -X melakukan hal yang sama.
orrd
2

Buka System Monitor, dan buka Processestab:

Wilf
sumber
1

Cobalah:

watch 'ps faux | grep -v grep | grep casper'

Anda juga dapat mengubah interval penyegaran menggunakan --interval <seconds>parameter.

Martin Dvorak
sumber
1
Anda tidak memerlukan -v grep jika Anda mengubah yang terakhir untuk grep [c] asper. Itu cocok dengan casper tetapi tidak dengan sendirinya.
Wudang