Linux kernel will consume all the free memory in your system first then start eating up your cache this is because Linux kernel uses the unused free memory as cache memory to increase performance , you can read more about memory management in the classic work "Understanding the Linux Virtual Memory Manager" by Mel Gorman
if you find the book out of date you can contribute with latest changes and improve upon it , that is the beauty of working in FOSS world , accelerated learnings and you can contribute back is anyone a game :-) -Satya -- LUG@IITD - http://tinyurl.com/ycueutm
