it-swarm-id.com

Bagaimana menemukan proses mana yang mengambil semua memori?

Saya mencari sesuatu seperti top adalah untuk penggunaan CPU. Apakah ada argumen baris perintah untuk top yang melakukan ini? Saat ini, ingatan saya begitu penuh sehingga bahkan 'man top' gagal tanpa memori :)

87
ripper234

Dari dalam top Anda dapat mencoba yang berikut:

  • Tekan SHIFT+f
  • Tekan Surat yang sesuai dengan% MEM
  • Tekan ENTER

Anda mungkin juga mencoba:

$ ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5

Ini akan memberikan 5 proses teratas oleh penggunaan memori.

107
Steven D

Jika sudah diinstal saya suka htop setelah meluncurkannya Anda bisa menekan f6down arrow (untuk MEM%), enter untuk mengurutkan berdasarkan memori.

11
xenoterracide

Setelah top dimulai, tekan F untuk beralih ke layar bidang sortir. Pilih salah satu bidang yang terdaftar dengan menekan tombol yang tercantum di sebelah kiri; Anda mungkin mau N untuk MEM%

7
Michael Mrozek

Di Solaris, perintah yang Anda butuhkan adalah:

prstat -a -s size

Ini akan mendaftar semua proses dalam urutan ukuran gambar proses turun. Perhatikan bahwa yang terakhir didasarkan pada memori yang dilakukan untuk proses oleh OS, bukan penggunaan memori fisik penduduknya.

Seharusnya ada versi "atas" yang tersedia untuk Solaris, tetapi ini bukan bagian dari instalasi standar.

6
Joel Hoff

Satu alternatif yang bagus untuk top adalah htop. Lihat, itu jauh lebih ramah pengguna daripada top biasa.

5
Klark

Dapat dicapai dengan berbagai cara, Favorit saya adalah:

Cara PS:

  1. [[email protected] ~]$ ps -eo pid,cmd,%cpu,%mem --sort=-%mem

    Dimana,

    • -e: untuk memilih semua proses
    • -o: untuk diterapkan ke format output
    • pid, cmd, %cpu, %mem: Format output dalam urutan yang tepat. Di sini, pcpu dan pmem dapat digunakan sebagai ganti %cpu dan %mem.
    • Tapi sayangnya (tidak tahu mengapa) tidak bekerja pada beberapa mesin (Oracle Linux) dan beberapa mesin yang lebih tua. Anda dapat menggunakan alternatif serupa berikut ini.
  2. [[email protected] ~]$ ps -eo pid,cmd,%cpu,%mem --sort -rss

    Dimana,

    • -rss: resident set size, memori fisik non-swapping yang digunakan oleh suatu tugas
  3. [[email protected] ~]$ ps --cols 120 aux --sort -rss

    Dimana,

    • --cols 100: untuk menentukan lebar kolom dari output sebagai kadang-kadang cmd menjadi sangat panjang. Ini tidak perlu jika Anda tidak ingin perintah dibatasi dengan argumen.
    • aux: untuk melihat setiap proses pada sistem menggunakan sintaks BSD

Cara teratas:

[[email protected] ~]$ top -b -o +%MEM

Dimana,

  • -b: untuk menggunakan mode top sebagai batch.
  • -o: untuk mengganti sortir fieldname diikuti oleh fieldname %MEM

Dan Anda selalu dapat menggunakan head dan/atau tail untuk mengontrol output.

1
muhammad

Perintah ini akan mengidentifikasi proses pemakaian memori teratas:

ps -A --sort -rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";z"
1
user90191

Secara global: Selalu disarankan untuk menggunakan alat penganalisa log untuk mencatat log histori seperti Splunk, ELK dll. Sehingga menggunakan bahasa query Anda dapat dengan mudah mendapatkan PID dan penggunaannya oleh CPU & memori.

AT SERVER/OS LEVEL: Dari atas Anda dapat mencoba yang berikut:

 Press SHIFT+M  ---> This will give you a process which takes more memory in descending order.

Anda mungkin juga mencoba:

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10

Ini akan memberikan 10 proses teratas oleh penggunaan memori. Anda juga dapat menggunakan utilitas vmstat untuk menemukan penggunaan RAM pada saat yang sama bukan untuk riwayat.

0
Santosh Garole

Anda dapat mencoba ps aux --sort -rss | head atau ps aux | sort -nk +4 | tail

0
David Okwii