В чем разница между "buffers" и "cache" в выводе утилиты free в Linux?
Кешированная память включает в себя еще кое-какие вещи, которые буферная память не имеет. Например, данные с tmpfs. Вот наглядный пример что бы показать отличие между buffers и cache:
mkdir t
mount -t tmpfs none t
dd if=/dev/zero of=t/zero.file bs=10240 count=10240
sync; echo 3 > /proc/sys/vm/drop_caches; free -m
umount t
sync; echo 3 > /proc/sys/vm/drop_caches; free -m
После выполения этого кода, вы увидите что "cache" уменьшился на 100 мегабайт, потому что именно такой объем данных был записан в tmpfs (которая хранит все в оперативной памяти). При этом, конечно, сам компьютер должен иметь эти самые 100 мегабайт свободной памяти что бы наш эксперимент удался.
Перед каждой попыткой сбросить данные буферной памяти на диске вызывается вот эта процедура:
sync; echo 3 > /proc/sys/vm/drop_caches
Параллельно с очисткой буферной памяти, происходит очистка дискового кеша.
Вообщем, все немножко более сложно чем вы объяснили задавая свой вопрос.
Buffers - это страницы памяти, которые еще не записаны на диск.
Cache - это данные, которые уже были прочитаны с диске и сохранены в оперативной памяти копьютера.
@linuxkalii
Кешированная память включает в себя еще кое-какие вещи, которые буферная память не имеет. Например, данные с tmpfs. Вот наглядный пример что бы показать отличие между buffers и cache:
mkdir t
mount -t tmpfs none t
dd if=/dev/zero of=t/zero.file bs=10240 count=10240
sync; echo 3 > /proc/sys/vm/drop_caches; free -m
umount t
sync; echo 3 > /proc/sys/vm/drop_caches; free -m
После выполения этого кода, вы увидите что "cache" уменьшился на 100 мегабайт, потому что именно такой объем данных был записан в tmpfs (которая хранит все в оперативной памяти). При этом, конечно, сам компьютер должен иметь эти самые 100 мегабайт свободной памяти что бы наш эксперимент удался.
Перед каждой попыткой сбросить данные буферной памяти на диске вызывается вот эта процедура:
sync; echo 3 > /proc/sys/vm/drop_caches
Параллельно с очисткой буферной памяти, происходит очистка дискового кеша.
Вообщем, все немножко более сложно чем вы объяснили задавая свой вопрос.
Buffers - это страницы памяти, которые еще не записаны на диск.
Cache - это данные, которые уже были прочитаны с диске и сохранены в оперативной памяти копьютера.
@linuxkalii