Cari tahu total memori yang dialokasikan untuk proses tertentu di Ubuntu

15

Bagaimana saya bisa mengetahui total memori yang dialokasikan untuk proses tertentu di Ubuntu?

Anjali
sumber
1
Sudahkah Anda mencoba ps -aefl dan melihat kolom SZ?
mdpc
2
Apa yang Anda maksud dengan “mencari tahu memori yang dialokasikan”? Apakah Anda ingin tahu berapa banyak memori yang digunakan proses?
Gilles 'SO- berhenti bersikap jahat'

Jawaban:

14

Mencoba:

pidof bash | xargs ps -o rss,sz,vsz

Untuk menemukan penggunaan memori dari bashshell Anda saat ini (dengan asumsi Anda menggunakan bash). Ubah bashapa pun yang Anda selidiki. Jika Anda setelah satu proses tertentu, cukup gunakan sendiri:

ps -o rss,sz,vsz <process id>

Dari manhalaman:

RSS: resident set size, memori fisik non-swapping yang digunakan oleh suatu tugas (dalam kiloBytes).

SZ: ukuran di halaman fisik gambar inti dari proses. Ini termasuk teks, data, dan ruang stack.

VSZ: ukuran memori virtual dari proses dalam KiB (unit 1024-byte).

The manhalaman untuk psakan menampilkan semua argumen yang mungkin dengan -opilihan (ada beberapa untuk memilih dari). Alih-alih -o rss,szAnda bisa menggunakan vopsi gaya BSD (tanpa tanda hubung) yang menunjukkan tata letak memori alternatif.

garethTheRed
sumber
Terima kasih Gareth ... Apakah Anda mengatakan bahwa SZ adalah memori yang dialokasikan untuk proses itu?
Anjali
4
Ada QA yang baik di sini yang menjelaskan hubungan antara RSS, SZdan VSZ.
garethTheRed
0

bagaimana cara mengetahui total memori yang dialokasikan untuk proses tertentu di ubuntu?

Anda tidak menentukan berapa memori yang dialokasikan untuk suatu proses, dan sebenarnya itu adalah pertanyaan yang cukup kompleks (bagaimana dengan pemetaan memori bersama - lihat mmap (2) untuk detailnya; bagaimana dengan memori bersama POSIX - lihat shm_overview (7) untuk lebih lanjut ; bagaimana dengan beberapa halaman dalam cache halaman yang digunakan untuk file yang dibuka; dll ...)

Anda bisa menggunakan /proc/sistem file (yang BTW digunakan oleh ps, pmap, top, htopdll ....). Baca proc (5) untuk lebih lanjut. Khususnya untuk proses pid 1234 Anda bisa menggunakan /proc/1234/status, /proc/1234/statm, /proc/1234/mapsdll ... Mereka semua tekstual pseudo-file (sedikit seperti pipa) yang dapat Anda lihat dengan cat(atau membaca secara berurutan dalam beberapa program). BTW, dari dalam suatu program Anda dapat menggunakan /proc/self (yang merupakan symlink semu), misalnya membaca secara berurutan /proc/self/statusdll ...

Lihat juga LinuxAteMyRam .

Basile Starynkevitch
sumber