我们可以使用linux-ftools查看Linux 的cached里面有哪些内容(工具: https://code.google.com/p/linux-ftools/):
安装缓存工具
#!/bin/bash
tar xf linux-ftools.tar.gz -C ./
cd linux-ftools/ && ./configure && make && make install
安装完成后,在/usr/local/bin 下生成3个文件 linux-fadvise 、linux-fallocate 、linux-fincore
常用命令:
linux-fincore --help
查看缓存内容:
fincore --pages=false --summarize --only-cached *
读缓存、写缓存
Page cache主要用来作为文件系统上的文件数据的缓存来用,尤其是针对当进程对文件有read/write操作的时候。如果你仔细想想的话,作为可以映射文件到内存的系统调用:mmap是不是很自然的也应该用到page cache?在当前的系统实现里,page cache也被作为其它文件类型的缓存设备来用,所以事实上page cache也负责了大部分的块设备文件的缓存工作。
什么是buffer cache
Buffer cache则主要是设计用来在系统对块设备进行读写的时候,对块进行数据缓存的系统来使用。这意味着某些对块的操作会使用buffer cach