Answers:
不,不是。我自己检查了很多次,但是不用担心,Linux内核非常聪明地处理了您的宝贵内存。在写入磁盘时读取RAM中缓存的内容-Linux 和http://linuxatemyram.com
这将导致内核从内存中删除干净的缓存,牙科和索引节点,从而导致该内存变为可用。
要释放页面缓存:
echo 1 > /proc/sys/vm/drop_caches
要释放牙齿和索引节点:
echo 2 > /proc/sys/vm/drop_caches
要释放页面缓存,牙科和索引节点:
echo 3 > /proc/sys/vm/drop_caches
因为这是一种非破坏性操作,并且脏对象是不可释放的,所以用户应首先运行“同步”,以确保释放所有缓存的对象。
他们不是 :-)。这是可靠的证明:
$ dd if=/dev/zero of=test bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.409106 s, 256 MB/s
$ sync
$ time cat test > /dev/null
real 0m0.027s
user 0m0.000s
sys 0m0.026s
之后的数据仍被缓存sync
。您可以通过查看读取文件的时间来知道它已被缓存。(我有一个旋转的硬盘驱动器,最大读取速度约为100MB / s)。与此相比,组合sync
和drop_caches
:
$ sync
$ echo 1 | sudo tee /proc/sys/vm/drop_caches
1
$ time cat test > /dev/null
real 0m1.030s
user 0m0.001s
sys 0m0.073s