查询和清除文件系统缓存
为了减少磁盘I/O,加快读写速度,Linux内核使用文件系统的Cache,Page Cache。 下面通过一个实验验证一下,查看Cache分配使用情况。 # free -w total used free shared buffers cache available Mem: 344756 106244 186612 1540 76 51824 226956 Swap: 2097148 30464 2066684 free 从/proc/meminfo 中获取信息进行展示,这里的Page Cache主要是 cache + buffers 这两个项目项目。 page cache是针对 file systems , buffer是针对 block devices 两者是在不同时期不同场景下涉及的缓存机制,kernel2.4版本之前是分开的,并存的。之后版本进行了融合。free默认不加-w参数,可以看到输出cache和buffer合计在一起 # dd if=/dev/random of=/root/data_file count=1400000 # du data_file -sh 103M data_file 使用读取两次文件观察下执行时间 # free -w total used free shared buffers cache available Mem: 344756 106244 186612 1540 76 51824 226956 Swap: 2097148 30464 2066684 # time cat data_file > /dev/null real 0m0.273s user 0m0.000s sys 0m0.064s # free -w total used free shared buffers cache available Mem: 344756 106240 81072 1540 76 157368 227012 Swap: 2097148 30464 2066684 # time cat data_file > /dev/null real 0m0.031s user 0m0.002s sys 0m0.026s 可以看到第二次执行时间比第一次明显减少,清理一下page cache ...