Wednesday, July 10, 2013

How to clear Linux RAM memory cache


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 in order to make sure all cached objects are freed.

Memory before:
[root@server1 ~]# free -m
                   total       used        free     shared    buffers     cached
Mem:          7860       7040        820        0        343          5076
-/+ buffers/cache:       1620       6240
Swap:         3999          0          3999
[root@server ~]# sync
[root@server ~]# echo 3 > /proc/sys/vm/drop_caches
Memory after:
[root@server1 ~]# free -m
                   total       used         free     shared    buffers     cached
Mem:          7860       1279        6581          0          0         33
-/+ buffers/cache:       1245       6615
Swap:         3999          0          3999

No comments:

Post a Comment