GNU/Linux >> Belajar Linux >  >> Linux

Apa kolom buffer di output dari gratis?

free menarik datanya dari /proc/meminfo

slkwr133701:/usr/src/linux # free

             total       used       free     shared    buffers     cached
Mem:       2053456     434572    1618884          0      77888     201820

slkwr133701:/usr/src/linux # cat /proc/meminfo

MemTotal:        2053456 kB
MemFree:         1618736 kB
Buffers:           77928 kB
....

Ini mengacu pada memori yang digunakan untuk penyimpanan blok I/O sementara. Kernel harus menetapkan dan membebaskan unit ukuran yang sama secara terus-menerus seperti transfer blok I/O, paket jaringan, dan buffer soket

Anda dapat melihat cache dan alokasi buffer dengan lebih baik dengan menjalankan slabtop

Menanggapi pertanyaan penggunaan Anda:Sistem biasanya akan mengalokasikan lebih banyak blok daripada yang dibutuhkan, tetapi saat "tekanan memori" meningkat, blok tambahan ini akan dilepaskan.


"buffer" dapat diklaim ulang di bawah tekanan memori. Jadi ini mirip dengan cache halaman (kolom "cache"); bukan alasan besar untuk khawatir. Nilai "buffer" bisa kecil atau besar, tergantung apa yang dilakukan sistem Anda :-). Kami dapat menemukan beberapa jenis cache yang dihitung di sini.

Cache buffer secara harfiah adalah cache halaman untuk perangkat blok. Linux hanya melaporkan ini secara terpisah.[*] Anda dapat melihat penggunaan "buffer" saat program membaca/menulis simpul perangkat blok, mis. dd status=progress if=/dev/sda of=/dev/null . Tampaknya orang-orang juga menyadarinya saat menjalankan program pemutar DVD.

Buktinya, lihat:30% dari RAM adalah "buffer". Apa itu?

Jika Anda belum mengakses node blok perangkat, "buffer" Anda mungkin semuanya metadata sistem file . Sistem file menggunakan cache buffer secara internal sebagai kenyamanan. Mereka memastikan tidak pernah menggandakan file data - isi file - yang disimpan di cache halaman utama. Persisnya untuk apa sistem file menggunakan cache buffer - jika ada - bervariasi tergantung pada sistem file.

Pada mesin dengan jumlah RAM fisik yang kecil, saya perhatikan "buffer" dapat terlihat tinggi, ketika saya memiliki sistem file ext3/ext4. Ini karena menulis ke jurnal melewati buffer cache. (Lihat tautan di atas). sistem file ext3/4 juga menyimpan konten direktori dalam cache buffer.

Kedua, "buffer" ditunjukkan oleh free perintah juga termasuk SReclaimable, artinya lempengan yang dapat diklaim ulang. (Demonstrasikan di sini:Cara yang Tepat untuk Memantau Memori Linux, Lagi).

Memori slab tidak bagian dari cache halaman/buffer. Namun akan lebih mudah untuk menghitungnya bersama-sama. Keduanya dapat diklaim ulang, dan penggunaan utama (hanya?) dari lempengan yang dapat diklaim ulang adalah untuk caching sistem file. Misalnya metadata file (inode) dan pencarian jalur (dentry's) di-cache di slab yang dapat diklaim ulang. "Memori slab yang dapat diklaim ulang [dapat] menggunakan sebagian besar memori sistem pada sebagian besar sistem yang menganggur dengan banyak file."

Anda dapat melihat Buffers mentah dan SReclaimable nilai dalam cat /proc/meminfo . Anda juga dapat menjalankan slabtop untuk melihat daftar slab. AFAICT, slabtop tidak memberikan statistik pada lempengan sebagai dapat diklaim ulang atau tidak. Tapi biasanya Anda bisa menebak, dan jika ada lempengan yang mencurigakan, saya kira Anda bisa mencarinya berdasarkan namanya.

[*] Untuk keperluan jawaban ini, "buffer cache" adalah cache yang dihitung dengan Buffers di /proc/meminfo . Namun sumber lain mungkin merujuk ke seluruh cache halaman sebagai cache buffer terpadu. Jika Anda menginginkan penjelasan sejarah, lihat tautan pertama.

Pengembang Linux juga mungkin menggunakan "buffer cache" untuk mengartikan hal yang berbeda, saat mereka bertengkar tentang implementasi sistem file.


Linux
  1. WP-CLI - Mengelola WordPress dari Terminal Linux

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

  3. Linux – Kolom Buffer Di Keluaran Dari Gratis?

  1. Bagaimana Mencegah `ls` Dari Menyortir Output?

  2. Apa perbedaan antara buffer dan memori cache di Linux?

  3. Apa status kedua dalam keluaran acara tautan ip

  1. Cara Menghapus Buffer Memori dan Cache di Linux

  2. Apa yang Terjadi Pada Ruang Kosong?

  3. Bagaimana cara menghapus perangkat cache dari bcache?