Di dalam output atas, ada dua bidang, ditandai "buff / cache" dan "faedah Mem" di memori dan swap baris penggunaan:
Apa arti kedua bidang ini?
Saya sudah mencoba mencarinya di Google, tetapi hasilnya hanya memunculkan artikel umum di atas, dan mereka tidak menjelaskan apa yang ditandai oleh bidang ini.
Hanya untuk memperjelas sedikit, buffer merujuk ke data yang sedang ditulis - bahwa memori tidak dapat direklamasi sampai penulisan selesai.
Cache mengacu pada data yang telah dibaca - disimpan jika seandainya perlu dibaca lagi, tetapi dapat segera direklamasi karena selalu dapat dibaca kembali dari disk.
sumber
/proc/meminfo
memiliki bidangWriteback
khusus. Ada bidang yang terpisahBuffers
, dan itulah yang ditampilkan sepertibuffers
padafree -w
. Alasan umum untukBuffers
penggunaan memori ditunjukkan di sini: " 30% RAM adalah" buffer ". Apa itu? "Buffers
adalah (sekarang) bagian dari cache halaman; tidak dihitungCached
, tetapi dihitung sebagai bagian dariActive(file) + Inactive(file)
. Lihat komentar tentang jawaban Stephen Kitt.Dirty
adalah bagian dari cache halaman yang telah ditulis, dan akhirnya perlu ditulis kembali ke disk.Writeback
tidak termasukDirty
. Oleh karena itu,Writeback
bukan merupakan bagian dari nilaiBuffers
.Buffers
sebenarnya berarti adalah cache halaman yang terkait dengan perangkat blok. Beberapa filesystem menggunakan ini secara internal; yang lain tidak menggunakannya sama sekali. Saya pergi untuk memperbaiki jawaban saya pada pertanyaan "30% RAM saya adalah buffer".Sumber kanonik dari informasi ini adalah /usr/src/linux/Documentation/filesystems/proc.txt
Anda juga dapat menemukan detail lebih lanjut di sini .
Atau analisis kode sumber seperti ini .
Jumlah
buffers
adalah nilai pengembalian fungsinr_blockdev_pages(void)
Jumlah
cached
:sumber