Ubuntu – How to clean or disable the memory cache


After the system starts, in a few minutes my memory cache fills up and it starts using the swap. Here's a screenshot of /proc/meminfo.


However, if I can disable this process / clean the cache once after that, I think my system will speed up to some extent. Correct me if I am wrong here.

I have also tried Bleachbit memory cleaning, but it doesn't seem to clean the memory cache properly. Also, the feature is still in an experimental stage.

bleachbit memory

There was already a similar question posted here: How can I disable the prefetch cache?, but it was regarding Ubuntu Server, and also the answers involved manual settings etc.

So, I want to know if there's some software for disabling/enabling Memory Cache for Ubuntu 12.04.

Best Answer

Note: Linux is NOT "eating" your RAM! Please take a look at Geirha's excellent answer below to understand why...

After the above note, if you still feel "cleaning" the cache could help, you can certainly try: it's a one-liner from the terminal:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

There's no easy way to disable the cache, but you can achieve the same effect by cleaning it as often as every minute, if you want to:

  • Make it a cron-job

  • Press Alt-F2, type gksudo gedit /etc/crontab, and add this line near the bottom:

    */15 * * * * root sync && echo 3 > /proc/sys/vm/drop_caches

  • This cleans every 15 minutes. You can set to 1 or 5 minutes if you really want to by changing the first parameter to * or */5 instead of */15

One liner to know REAL free RAM, excepting cache

Geirha's answer explains the details, but in short, you get the number of free megabytes with:

free -m | sed -n -e '3p' | grep -Po "\d+$"

which on my 2GB command-line server returns an extremely health 1835.