Skip to content

Release memory in Linux (Unused or Cached)

In computer science, Memory Leakage occurs when a computer software or  program consumes required memory but unable to memory after completing its task  or when no longer needed to Operating System. There are two types of Memory Leakage. One is  Virtual Memory Leakage and another is Real Memory Leakage.

Now first Identify cached memory or unused memory by executing,

# free -m

total
used
free
shared
Mem:
3991
2674
1317
0
-/+ buffers/cache:
753
3238
Swap:
1023
0
1023

Flush file system buffers by executing,

# sync

Kernels 2.6.16.x and newer versions of kernel provide a mechanism to  have the kernel drop the page cache and/or inode and dentry caches on command,  which can be helpful to free up a lot of memory.

To  free page cache:

# echo 1 >  /proc/sys/vm/drop_caches

To  free dentries and inodes:

# echo 2 >  /proc/sys/vm/drop_caches

To  free page cache, dentries and inodes:

echo 3 >  /proc/sys/vm/drop_caches

Above  commands are non-destructive and will only release unused memory. As we have  used sync, so it will flush all  Dirty Objects which are not free able and make it as unused memory.