雖然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操作時引起了進程切換吧。