Cara Memeriksa Penggunaan Memori Setiap Proses di Linux

How Check Memory Usage Per Process Linux



Hari-hari ini, komputer dapat menjalankan banyak program sekaligus. CPU tidak mempunyai masalah untuk menangani semua program ini kerana CPU memiliki banyak core untuk menangani multi-tasking.

Setiap program ini dijalankan sebagai satu atau lebih proses. Setiap proses memperuntukkan sejumlah RAM atau memori untuk dirinya sendiri. Adalah mustahak agar proses berfungsi dengan betul. Sekiranya proses gagal memperuntukkan RAM atau memori yang mencukupi, prosesnya tidak dapat dibuat dan program tidak dapat dimulakan.







Jadi, salah satu tugas asas yang anda lakukan di komputer anda adalah memeriksa berapa banyak memori atau RAM (Memori Akses Rawak) yang digunakan setiap proses. Kerana, RAM atau memori komputer anda terhad.



Bayangkan kes, di mana anda ingin menjalankan beberapa program dan gagal kerana anda tidak mempunyai cukup memori. Mungkin beberapa proses menggunakan banyak memori yang tidak anda perlukan sekarang. Anda boleh membunuh atau menghentikan proses ini untuk membebaskan RAM atau memori, sehingga anda dapat memulakan program penting anda.



Dalam artikel ini, saya akan menunjukkan kepada anda bagaimana untuk memeriksa penggunaan memori setiap proses yang dijalankan pada mesin Linux anda. Saya akan menggunakan Debian 9 Stretch untuk semua demonstrasi dalam artikel ini. Tetapi ia mesti berfungsi pada sebaran Linux moden. Mari kita mulakan.





Anda boleh menggunakan ps arahan untuk memeriksa penggunaan memori semua proses di Linux. Terdapat satu masalah dengan prosedur ini. ps tidak benar-benar menunjukkan kepada anda berapa banyak memori yang digunakan oleh proses dalam format KB atau MB, tetapi akan menunjukkan kepada anda berapa banyak memori yang digunakan dalam bentuk peratusan.

Anda boleh memeriksa penggunaan memori (dalam peratusan) semua proses yang dijalankan pada sistem operasi Linux anda dengan arahan berikut:



$ps -ataupid, pengguna,%meme,arahankapak| mengurut -b -k3 -r

Seperti yang anda lihat, semua proses dengan penggunaan memori dalam peratusan disenaraikan dalam urutan menurun (Proses yang menggunakan sebahagian besar memori disenaraikan terlebih dahulu).

Memeriksa Memori Penggunaan Proses dengan pmap:

Anda boleh memeriksa memori proses atau sekumpulan proses dalam format yang dapat dibaca manusia (dalam KB atau kilobyte) dengan pmap arahan. Yang anda perlukan hanyalah PID dari proses yang anda ingin periksa penggunaan memori.

Katakanlah, anda ingin memeriksa berapa banyak memori yang digunakan oleh proses dengan PID 917. Untuk melakukan itu, jalankan pmap seperti berikut:

$sudopmap917

Seperti yang anda lihat, jumlah memori yang digunakan oleh proses 917 adalah 516104 KB atau kilobyte. Anda juga dapat melihat berapa banyak memori yang digunakan oleh perpustakaan dan fail lain untuk menjalankan proses dengan PID 917 di sini.

Sekiranya anda tidak peduli dengan berapa banyak memori yang digunakan oleh perpustakaan atau fail bergantung lain, jalankan pmap seperti berikut:

$sudopmap917 | ekor -n 1

Seperti yang anda lihat, hanya jumlah memori yang digunakan oleh proses dengan PID 917 yang dicetak di skrin.

Sekiranya anda mahu, anda boleh menapisnya dengan lebih lanjut awk dan dapatkan ukuran hanya dalam KB atau kilobyte. Untuk melakukan itu, jalankan pmap seperti berikut:

$sudopmap917 | ekor -n 1 | awk '/ [0-9] K / {cetak $ 2}'

Seperti yang anda lihat, hanya penggunaan memori dalam KB atau kilobyte yang dicetak.

Sekarang anda juga boleh menyenaraikan berapa banyak memori yang digunakan oleh pelbagai proses menggunakan PID mereka pmap seperti berikut:

$sudopmap917 531 | cengkamanjumlah

CATATAN: Di sini 917 dan 531 adalah ID proses atau PID. Anda boleh meletakkan seberapa banyak PID yang anda mahukan dengan cara ini.

Menggunakan pmap untuk Menyenaraikan Penggunaan Memori Semua Proses di Kilobyte:

Pada bahagian ini, saya akan menunjukkan kepada anda cara menulis skrip shell anda sendiri untuk menyenaraikan penggunaan memori dari semua proses yang berjalan pada sistem operasi Linux anda dalam format yang dapat dibaca manusia (kilobyte atau KB).

Pertama buat fail baru sysmon dalam direktori kerja semasa anda dengan arahan berikut:

$sentuhansysmon

Sekarang buat fail boleh dilaksanakan dengan arahan berikut:

$chmod+ x sysmon

sysmon adalah skrip shell yang akan memaparkan semua proses yang sedang berjalan PID , PEMILIK , MEMORI (dalam KB mengikut tertib menurun) dan PERINTAH . Mari mulakan.

Buka sysmon skrip dengan editor teks kegemaran anda, saya akan gunakan Kate .

Sekarang, arahan pertama yang akan saya jalankan akan memberi saya PID , PEMILIK dan PERINTAH dari semua proses berjalan yang dipisahkan oleh simbol titik dua (:) dan simpan di RAWIN pemboleh ubah. Kemudian gelung melalui output dan cetak pada skrin.

Seperti yang anda lihat, saya mendapat output yang betul.

Kini tiba masanya untuk memproses setiap baris, simpan maklumat yang dipisahkan titik dua dalam pemboleh ubah berasingan. Itulah yang saya buat pada baris 7, 8 dan 9.

Seperti yang anda lihat, saya boleh mencetak PID , PEMILIK dan PERINTAH dalam format saya sendiri sekarang.

Sekarang masanya untuk mengambil penggunaan memori setiap PID. Baris 10 melakukan perkara itu.

Seperti yang anda lihat, semuanya berjalan dengan sempurna. Sekarang saya dapat mencetak penggunaan memori setiap proses dalam kilobyte (KB) juga.

Sekarang yang tinggal hanyalah memformat output agar kelihatan bagus. Saya lebih suka format jadual. Baris 5 mencetak tajuk setiap lajur jadual.

Akhirnya, saya mencetak PID , PEMILIK , MEMORI (dalam KB) dan PERINTAH setiap proses dalam format jadual menggunakan baris 14.

Seperti yang anda lihat, ia berfungsi dengan baik. Terdapat sedikit masalah, namun prosesnya tidak disusun dengan betul mengikut urutan menurun berdasarkan penggunaan memori.

Untuk memperbaikinya, saya membuangnya urutkan -bnr -k3 dari baris 3 dan membungkus semuanya dalam fungsi shell sysmon_main () . Kemudian meninggalkan tugas menyusun ke mengurut arahan.

Skrip shell akhir kelihatan seperti ini:

Seperti yang anda lihat, ia berfungsi dengan baik.

Sekarang anda boleh memindahkannya ke tempat seperti / usr / tong sampah dan laksanakan seperti perintah lain seperti berikut:

$sudo mv -vsysmon/usr/saya

Melaksanakan sysmon :

Terima kasih kerana membaca artikel ini.