What does drop_caches do?
Prateek Sharma
prateeks at cse.iitb.ac.in
Thu Jul 28 03:06:01 EDT 2011
Hello everyone,
I've been trying to understand the role of the pagecache, starting with
drop_caches and observing what it does.
From my understanding of the code (fs/drop_caches.c) , it walks over all
the open files/inodes, and invalidates all the mapped pages. Pages which are
*not* dropped are either dirty,in-use,anonymous,mapped(to pagetable),or
writeback) . Is my understanding correct?
But, when i run drop_caches, there are still some pages which show up as
cached. Why arent all cache pages getting dropped ?
My confusion runs much deeper. What exactly constitutes the pagecache?
All filebacked pages ? mmaped files ? If i copy a bunch of files, why does my
cache get polluted with those pages?
Thanks for reading. I'd be grateful if someone can enlighten me about some
pagecache internals .
(Please keep me CC'ed)
<begin experiment>
root at tripitz:/etc/apt# free -m
total used free shared buffers cached
Mem: 1995 1854 140 0 79 700
-/+ buffers/cache: 1074 920
Swap: 4767 762 4005
root at tripitz:/etc/apt# echo 3 > /proc/sys/vm/drop_caches
root at tripitz:/etc/apt# free -m
total used free shared buffers cached
Mem: 1995 1373 621 0 0 363
-/+ buffers/cache: 1009 985
Swap: 4767 762 4005
<end experiment>
More information about the Kernelnewbies
mailing list