This question already has an answer here:


Is there any command that by using I can clean the cache in RHEL?

I used this command:

sync; echo 3 > /proc/sys/vm/drop_caches

but it didn't work.

marked as duplicate by derobert, Satō Katsura, countermode, GAD3R, roaima Feb 22 '17 at 10:37

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    define didn't work – daisy Dec 15 '12 at 14:30
  • 5
    What's wrong with having something cached? It could speed up access to the cached data. – ott-- Dec 15 '12 at 14:43
  • 4
    What problem are you trying to solve? – jippie Dec 15 '12 at 14:59
  • 1
    There are many reasons why the cache wouldn’t be cleared. If the file is in use or if the cache size is due to tmpfs or ramfs. I have blogged about different possibilities of cache here. – Joe Nov 18 '14 at 15:58
  • 3
    @ott--: simple, if you want to run high level performance tests (run version X of A against version X+1 of A to measure differences), how do you eliminate the file system cache from your testing? Because if you don't you'll skew your tests. You could by rebooting, but flushing the cache is certainly another option. – 0xC0000022L Oct 20 '16 at 13:23

Try sync; echo 1 > /proc/sys/vm/drop_caches.

  • sudo sh -c "echo 1 > /proc/sys/vm/drop_caches" – Evhz Dec 22 '17 at 8:34

Depending on what you want to do you can use 1,2 or 3

from https://www.kernel.org/doc/Documentation/sysctl/vm.txt


Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

To free pagecache:

echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

echo 3 > /proc/sys/vm/drop_caches

As this is a non-destructive operation and dirty objects are not freeable, the user should run 'sync' first.

Not the answer you're looking for? Browse other questions tagged or ask your own question.