How to Clear the Linux Memory Cache

Clearing the Linux Memory cache can be a quick way to regain system resources. Writing to the drop_cache process 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 in order to make sure all cached objects are freed.

Example - Memory before:

[root@server ~]# free -m
[root@server ~]# free -m
      total    used    free    shared     buffers     cached
Mem:  7860     7040    820     0          343         5076
-/+ buffers/cache:     1620    6240
Swap:          3999    0       3999

Cleanup command:

[root@server ~]# sync
[root@server ~]# echo 3 > /proc/sys/vm/drop_caches

Memory after:

[root@server ~]# free -m
      total    used    free    shared     buffers     cached
Mem:  7860     1279    0       0          0           33
-/+ buffers/cache:     1245    6615
Swap:          3999    0       3999

Sources