GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mendapatkan% penggunaan memori dengan vmstat?

Yang Anda cari adalah keluaran dari "free":

$ free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

Berikut turnya:

Ini adalah kotak dengan RAM fisik 768MB dan partisi swap 500344KB.

759456KB "digunakan" (kolom kedua, baris atas). Dari memori "bekas" ini, 23132KB adalah buffer (kolom ke-5, baris atas) dan 592484KB (kolom keenam, baris atas) adalah cache, menyisakan 144840KB (kolom ke-2, baris ke-2) memori fisik yang sedang digunakan oleh proses aktif.

Jika Anda mempertimbangkan bahwa memori yang digunakan oleh buffer dan cache dapat digunakan untuk proses, hal itu menyisakan memori fisik sebesar 630716KB (kolom ke-3, baris ke-2).

Partisi swap, seperti yang saya katakan, adalah 500344KB (kolom 1, baris bawah). 21972KB (kolom ke-2, baris bawah) dari file swap sedang digunakan, menyisakan 478372KB (kolom ke-3, baris bawah) gratis.

Jadi, definisi Anda tentang % memori bebas bergantung pada apakah Anda menghitung buffer dan cache atau tidak, dan apakah Anda menghitung swap atau tidak.

Itu seharusnya memberi Anda cukup untuk terus menghitung persentase sesuai keinginan Anda.

Inilah output dari top dan free:

$ top -n1 | grep "used," ; free
Mem:    775556k total,   751472k used,    24084k free,    20776k buffers
Swap:   500344k total,    21972k used,   478372k free,   586648k cached

             total       used       free     shared    buffers     cached
Mem:        775556     751344      24212          0      20776     586648
-/+ buffers/cache:     143920     631636
Swap:       500344      21972     478372

Anda dapat melihat bagaimana top dan gratis setuju (walaupun dengan sedikit perbedaan-- ini adalah mesin multi-pengguna dan penggunaan memori dari program teratas dan gratis tercermin di sana).

Tambahkan "-s" saat Anda memanggil vmstate, dan Anda akan melihat keluaran yang hampir sama, hanya dalam bentuk yang berbeda:

$ vmstat -s ; free
       775556  total memory
       759920  used memory
       674680  active memory
        18440  inactive memory
        15636  free memory
        21892  buffer memory
       594372  swap cache
       500344  total swap
        21972  used swap
       478372  free swap
       ... output truncated ...

             total       used       free     shared    buffers     cached
Mem:        775556     759920      15636          0      21892     594372
-/+ buffers/cache:     143656     631900
Swap:       500344      21972     478372

Anda dapat melihat bahwa vmstat menampilkan semua nomor yang sama dengan gratis.


Saya memiliki pertanyaan yang sama dengan Anda dan menghasilkan rumus

vmstat -s | awk  ' $0 ~ /total memory/ {total=$1 } $0 ~/free memory/ {free=$1} $0 ~/buffer memory/ {buffer=$1} $0 ~/cache/ {cache=$1} END{print (total-free-buffer-cache)/total*100}'

Saya telah mengujinya pada versi vmstat dari procps-ng 3.3.10 dan vmstat dari procps-ng 3.3.9


Linux
  1. Linux – Menentukan Penggunaan Memori dengan Benar di Linux?

  2. Bagaimana Cara Membebaskan Penggunaan Inode?

  3. Cara mendapatkan statistik sistem dengan node.js

  1. Cara mengetahui penggunaan memori pengguna di linux

  2. Bagaimana cara membatasi penggunaan memori aplikasi?

  3. Bagaimana cara mengurangi penggunaan memori ClamAV?

  1. Cara Memeriksa Penggunaan Memori Proses dengan Perintah pmap Linux

  2. Cara menggunakan perintah Vmstat di Linux dijelaskan dengan contoh

  3. Bagaimana penggunaan memori dilaporkan di Linux?