linux poison RSS
linux poison Email

How to free Linux Kernel page cache and/or inode and dentry caches

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

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 free-able, the user should run "sync" first in order to make sure all cached objects are freed.


8 comments:

Ariel said...

Hello, When i try to perform this tip i got this error message:
bash: /proc/sys/vm/drop_caches: Permission denied
Even when i run the command by sudo.

DevOps said...

can you please provide me the actual command that you have used here?

Ariel said...

"sudo echo 3 > /proc/sys/vm/drop_caches" or "echo 3 > /proc/sys/vm/drop_caches" don't work.

DevOps said...

Which version of kernel you are running? type command "uname -a"

Ariel said...

2.6.32-24-generic

infwonder said...

http://www.linuxask.com/questions/permission-denied-when-doing-redirection-with-sudo

Unknown said...

Ariel, in order to redirect output with sudo you have to make it a full on bash command. For instance:
sudo bash -c “echo 3 > /proc/sys/vm/drop_caches"

Ariel said...

Thank a lot! i always love to learn something new.

Post a Comment

Related Posts with Thumbnails