虽然cache的作用显而易见,直观上的感受大概要亲自体验过才知道。今天偶然清空了cache,再打开文件时,居然有可以感知的延时!
sync
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
访问一个已存在的文件:
# time touch vfs
user 0m0.001s
sys 0m0.004s
# time touch vfs
real 0m0.005s
user 0m0.000s
sys 0m0.005s
清空cache,创建一个新文件试试:
# time touch abc
real 0m0.097s
user 0m0.000s
sys 0m0.005s
# time touch abc
real 0m0.005s
user 0m0.001s
sys 0m0.005s
在没有cache的情况下,访问一个已存在的文件居然需要0.2秒。cache存在时就是毫秒杀了。
创建新文件的情况稍微强一点,可能磁盘操作少些。
另外,结果中的sys time在有无cache时差距并不大,real time的差别大概是进行IO操作时引起了进程切换吧。