GNU/Linux >> Belajar Linux >  >> Linux

Arti baris buffer/cache di keluaran free

Solusi 1:

Arti nilai

Baris pertama berarti:

  • total :RAM total (fisik) Anda (tidak termasuk bit kecil yang dicadangkan secara permanen oleh kernel untuk dirinya sendiri saat startup); itu sebabnya itu menunjukkan ca. 11,7 GiB , dan bukan 12 GiB, yang mungkin Anda miliki.
  • used :memori yang digunakan oleh OS.
  • free :memori tidak digunakan.

total =used + free

  • shared / buffers / cached :Ini menunjukkan penggunaan memori untuk tujuan tertentu, nilai ini termasuk dalam nilai untuk used .

Baris kedua memberikan nilai baris pertama yang disesuaikan. Ini memberikan nilai asli untuk used dikurangi jumlah buffers+cached dan nilai asli untuk free tambah jumlah buffers+cached , maka judulnya. Nilai-nilai baru ini seringkali lebih berarti daripada nilai-nilai baris pertama.

Baris terakhir (Swap: ) memberikan informasi tentang penggunaan ruang swap (yaitu konten memori yang telah dipindahkan sementara ke disk).

Latar Belakang

Untuk benar-benar memahami arti angka-angka tersebut, Anda memerlukan sedikit latar belakang tentang subsistem memori virtual (VM) di Linux. Versi pendeknya saja:Linux (seperti kebanyakan OS modern) akan selalu mencoba menggunakan RAM kosong untuk melakukan caching, jadi Mem: free hampir selalu akan sangat rendah. Oleh karena itu baris -/+ buffers/cache: ditampilkan, karena menunjukkan berapa banyak memori yang kosong saat mengabaikan cache; cache akan dibebaskan secara otomatis jika memori menjadi langka, jadi itu tidak terlalu penting.

Sistem Linux sangat kekurangan memori jika free nilai dalam -/+ buffers/cache: garis menjadi rendah.

Untuk detail lebih lanjut tentang arti angka, lihat mis. pertanyaannya:

  • Di Linux, apa perbedaan antara "buffer" dan "cache" yang dilaporkan oleh perintah free?
  • Mengapa Red Hat Linux melaporkan lebih sedikit memori kosong pada sistem daripada yang sebenarnya tersedia?

Perubahan pada procps 3.3.10

Perhatikan bahwa output dari free diubah dalam procps 3.3.10 (dirilis pada 2014). Kolom yang dilaporkan sekarang adalah "total", "used", "free", "shared", "buff/cache", "available" , dan arti dari beberapa nilai berubah, terutama untuk menjelaskan cache slab kernel Linux dengan lebih baik.

Lihat laporan Bug Debian #565518 untuk motivasinya, dan Apa yang dilakukan perubahan pada free keluaran dari 14,04 menjadi 16,04 artinya? untuk informasi lebih detail.

Solusi 2:

Jawaban yang diterima saat ini dari tahun 2009 sudah kedaluwarsa. Penting untuk memastikan bahwa informasi yang Anda dapatkan benar dan cocok dengan versi free (didistribusikan dalam paket Debian procps atau setara dalam distribusi Anda). Juga bermanfaat untuk melihat keluaran dari man free , dan juga man 5 proc , yang berisi informasi tentang /proc/meminfo , file tempat free mendapatkan datanya dari Linux.

Secara default, free keluaran dalam kibibyte (1 kibibyte =1024 byte), seperti yang Anda lihat di halaman manual. Saya lebih suka menggunakan -h argumen, yang menunjukkan akhiran, seperti ini:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi       6.1Gi       1.9Gi       301Mi       7.5Gi       8.8Gi
Swap:         979Mi          0B       979Mi

Baris pertama Mem artinya:

  • total (Mem):total memori terpasang (yaitu MemTotal dari /proc/meminfo ), ini semua memori dalam RAM
  • used (Mem):memori bekas, sama dengan total - free - buffers - cache
  • free (Mem):memori yang tidak terpakai (yaitu MemFree ), ini semua memori yang tidak digunakan untuk apa pun (bahkan cache) di RAM
  • shared (Mem):ini adalah jumlah memori yang digunakan terutama untuk tmpfs (Shmem )
  • buff/cache (Mem), jumlah dari buffers dan cache :
    • buffers :memori yang digunakan oleh buffer kernel (Buffers ), yang merupakan memori yang dapat dimanfaatkan oleh kernel
    • cache :memori yang digunakan oleh cache halaman dan slab (Cached dan SReclaimable ). Cache halaman berisi konten file dalam sistem file yang di-cache ke RAM, dan umumnya merupakan hal yang baik jika jumlahnya tinggi. Saya menganggap "slab" adalah fitur caching yang serupa.
  • available (Mem):ini adalah perkiraan berapa banyak memori yang tersedia untuk memulai aplikasi baru, tanpa bertukar. Ini mencakup sebagian besar memori yang dihitung dalam cache bidang (karena cache halaman dapat dihapus untuk memulai aplikasi baru), tetapi tidak menghitung swap (karena biasanya lebih baik tidak menggunakan ruang swap yang lambat).

Baris kedua adalah Swap . Ini penjelasan saya:

  • total (Tukar):ini adalah jumlah total ruang disk yang dicadangkan untuk swap (SwapTotal di proc/meminfo ). Anda dapat memeriksa dengan memeriksa apakah ini cocok dengan keluaran swapon -s .
  • used (Swap):jumlah ruang swap disk yang sedang digunakan. Sekali lagi, Anda dapat memeriksanya dengan membandingkannya dengan keluaran swapon -s
  • free (Tukar):jumlah ruang disk swap yang saat ini tidak digunakan (SwapFree di /proc/meminfo ). Itu sama dengan total (Swap) - used (Swap)

Linux
  1. Linux – Bagaimana Mengosongkan Buffer Dan Cache Pada Sistem Linux?

  2. Bagaimana Mengenalinya Versi Os X Saya Dari Baris Perintah?

  3. Linux – Kolom Buffer Di Keluaran Dari Gratis?

  1. Bagaimana Cara Mengisi 90% Dari Memori Gratis?

  2. Apa yang dimaksud dengan POSIX?

  3. Bagaimana cara mencatat konsumsi memori di Linux?

  1. Menghilangkan baris pertama dari keluaran perintah Linux mana pun

  2. Menyelaraskan ke baris cache dan mengetahui ukuran baris cache

  3. Linux gratis menunjukkan penggunaan memori yang tinggi tetapi top tidak