GNU/Linux >> Belajar Linux >  >> Linux

Apa maksud kolom buff/cache dan avail mem di atas?

top halaman manual tidak menjelaskan bidang, tetapi free ’s does:

buffer

Memori yang digunakan oleh buffer kernel (Buffers di /proc/meminfo )

cache

Memori yang digunakan oleh cache halaman dan slab (Cached dan SReclaimable di /proc/meminfo )

buff/cache

Jumlah buffer dan cache

tersedia

Estimasi berapa banyak memori yang tersedia untuk memulai aplikasi baru, tanpa bertukar. Berbeda dengan data yang disediakan oleh cache atau bidang kosong, bidang ini memperhitungkan cache halaman dan juga bahwa tidak semua pelat memori yang dapat diklaim ulang akan diklaim kembali karena item sedang digunakan (MemAvailable di/proc/meminfo , tersedia di kernel 3.14, ditiru di kernels2.6.27+, jika tidak sama dengan gratis)

Pada dasarnya, "buff/cache" menghitung memori yang digunakan untuk data yang ada di disk atau akan segera berakhir di sana, dan sebagai hasilnya berpotensi dapat digunakan (memori yang sesuai dapat segera tersedia, jika belum dimodifikasi sejak dibaca , atau diberi waktu yang cukup, jika ada); "tersedia" mengukur jumlah memori yang dapat dialokasikan dan digunakan tanpa menyebabkan lebih banyak pertukaran (lihat Bagaimana saya bisa mendapatkan jumlah memori yang tersedia secara portabel di seluruh distribusi? untuk detail lebih lanjut tentang itu).


Sedikit klarifikasi, buffer mengacu pada data yang sedang ditulis -- memori tersebut tidak dapat diperoleh kembali hingga penulisan selesai.

Cache mengacu pada data yang telah dibaca -- disimpan untuk berjaga-jaga jika perlu dibaca lagi, tetapi dapat segera diperoleh kembali karena selalu dapat dibaca ulang dari disk.


Sumber kanonis dari informasi ini adalah /usr/src/linux/Documentation/filesystems/proc.txt

Buffer :Penyimpanan yang relatif sementara untuk blok disk mentah seharusnya tidak terlalu besar (20MB atau lebih)Di-cache :cache dalam memori untuk file yang dibaca dari disk (cache halaman). Tidak termasuk SwapCached.

Anda juga dapat menemukan beberapa detail lainnya di sini.

Tembolok Laman Linux ("Tembolok :" from meminfo ) adalah konsumen tunggal RAM terbesar pada sebagian besar sistem. Setiap kali Anda melakukan read() dari file pada disk, data tersebut dibaca ke dalam memori, dan masuk ke pagecache(1.).
Cache buffer ("Buffer :" di meminfo) lebih dekat dengan cache dentry/inode.

Atau analisis kode sumber seperti ini.

Jumlah buffers adalah nilai kembalian dari fungsi nr_blockdev_pages(void)

long nr_blockdev_pages(void)
{
        struct block_device *bdev;
        long ret = 0;
        spin_lock(&bdev_lock);
        list_for_each_entry(bdev, &all_bdevs, bd_list) {
                ret += bdev->bd_inode->i_mapping->nrpages;
        }
        spin_unlock(&bdev_lock);
        return ret;
}

Jumlah cached :

global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram

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

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

  3. Apa perbedaan antara ls dan l?

  1. Apa perbedaan antara PAE 32-bit dan kernel 64-bit?

  2. Apa yang dimaksud dengan kemampuan ep?

  3. Apa itu pengguna debian-+?

  1. Di Linux, apa perbedaan antara buffer dan cache yang dilaporkan oleh perintah free?

  2. Apa perbedaan antara unlink dan rm?

  3. Apa artinya %st di atas?