GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara buffer dan memori cache di Linux?

Buffer dikaitkan dengan perangkat blok tertentu, dan mencakup caching metadata sistem file serta melacak halaman dalam penerbangan. Cache hanya berisi data file yang diparkir. Artinya, buffer mengingat direktori apa yang ada, izin file apa, dan melacak dari mana memori ditulis atau dibaca untuk perangkat blok tertentu. Cache hanya berisi konten file itu sendiri.

tautan kutipan


Jawaban yang dikutip (untuk referensi):

Jawaban singkat:Di-cache adalah ukuran cache halaman. Buffer adalah ukuran buffer I/O blok dalam memori. Hal-hal yang di-cache; Buffer sebagian besar tidak relevan.

Jawaban panjang:Cached adalah ukuran cache halaman Linux, minus memori dalam cache swap, yang diwakili oleh SwapCached (sehingga total ukuran cache halaman adalah Cached + SwapCached). Linux melakukan semua I/O file melalui cache halaman. Penulisan diimplementasikan hanya dengan menandai sebagai kotor halaman yang sesuai di cache halaman; utas flusher kemudian secara berkala menulis kembali ke disk setiap halaman kotor. Bacaan diimplementasikan dengan mengembalikan data dari cache halaman; jika data belum ada di cache, data tersebut akan diisi terlebih dahulu. Pada sistem Linux modern, Cached dapat dengan mudah berukuran beberapa gigabyte. Itu akan menyusut hanya sebagai respons terhadap tekanan memori. Sistem akan membersihkan cache halaman bersama dengan menukar data ke disk untuk menyediakan lebih banyak memori sesuai kebutuhan.

Buffer adalah buffer I/O blok dalam memori. Mereka relatif berumur pendek. Sebelum kernel Linux versi 2.4, Linux memiliki cache halaman dan buffer terpisah. Sejak 2.4, cache halaman dan buffer disatukan dan Buffer adalah blok disk mentah yang tidak terwakili dalam cache halaman—yaitu, bukan data file. Metrik Buffer dengan demikian tidak terlalu penting. Pada sebagian besar sistem, Buffer seringkali hanya berukuran puluhan megabyte.


Linux
  1. Apa perbedaan antara env dan set (di Mac OS X atau Linux)?

  2. Apa perbedaan antara menulis ke file dan memori yang dipetakan?

  3. Apa perbedaan antara strtok_r dan strtok_s di C?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Apa perbedaan antara driver platform Linux dan driver perangkat biasa?

  3. Apa perbedaan antara ls dan l?

  1. Apa perbedaan antara wadah Linux dan gambar?

  2. Apa perbedaan antara perintah locate dan find di Linux?

  3. Apa perbedaan antara 'temukan' dan 'temukan' di Linux?