Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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.

memory

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.

share|improve this question
    
Are you sure this will solve your problem? Memory doesn't fill up without a reason. I also had the problem that my memory was filling up, and traced it back to tracker-miner. After I uninstalled all tracker packages, my problem went away. I also have 4GB memory, and 2GB are used by chaches, but I'm nor experiencing any problems. –  daniel kullmann Jun 25 '12 at 12:39
    
@danielkullmann: He's referring to cached memory, not memory used by apps... –  izx Jun 25 '12 at 13:04
    
@izx Yes, I know. It could just be that he looks for the solution of the wrong problem. The kernel is smart enough not to fill up memory with caches when it is needed by programs. That's why I think that his memory problems come from a program that uses too much memory. –  daniel kullmann Jun 26 '12 at 6:28
    
@danielkullmann: I am curious to know how you traced it back to one process that's gobbling up all that memory... Is there some tool/command for that? –  Forbidden Overseer Jun 26 '12 at 14:43
    
I just used the htop command, and sorted by memory usage. –  daniel kullmann Jun 26 '12 at 15:56

2 Answers 2

up vote 14 down vote accepted

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.

share|improve this answer
2  
Ergh! Knocking out the cache is bad enough, but making a cronjob for it? I mean, this does "solve" the question, so to speak, but that doesn't make it any less painful. –  Reid Jun 25 '12 at 13:25
    
@Reid: "Ours not to reason why; theirs but to do and die" ;) –  izx Jun 25 '12 at 13:31
    
@izx: hmm... so this is how one creates a cronjob. If I am going to drop the cache periodically, doesn't it mean that I am actually slowing down the system? If that were the case, I think your answer sounds more like a theoretical answer than geirha's answer. :p Good answer BTW... –  Forbidden Overseer Jun 25 '12 at 19:23
1  
@ForbiddenOverseer: I only put that in because you wanted to "disable" the cache, and dropping it periodically is the only way to accomplish that. My note at the top (and geirha's link) clearly states that the cache actually speeds up your system most of the time, even if it looks like its "eating your RAM) --- so yes, IMO you would be slowing down your system, but you wanted to try it, so I just answered your question instead of simply nagging you and telling you it's a bad idea and so you shouldn't do it! I just gave you the power to experiment... :D –  izx Jun 25 '12 at 19:49
    
I am using Ubuntu Server 12.04 LTS as a VDS. I am trying approach provided in this answer, but I am constantly getting tee: /proc/sys/vm/drop_caches: Permission denied. Any tips? –  Eimantas Aug 3 '13 at 13:57

Help! Linux ate my RAM!

www.linuxatemyram.com explains this beautifully in FAQ form, with the essentials being:

What's going on?

Linux is borrowing unused memory for disk caching. This makes it looks like you are low on memory, but you are not! Everything is fine!

Why is it doing this?

Disk caching makes the system much faster! There are no downsides, except for confusing newbies. It does not take memory away from applications in any way, ever!

What if I want to run more applications?

If your applications want more memory, they just take back a chunk that the disk cache borrowed. Disk cache can always be given back to applications immediately! You are not low on ram!

How do I see how much free ram I really have?

Too see how much ram is free to use for your applications, run free -m and look at the row that says "-/+ buffers/cache" in the column that says "free". That is your answer in megabytes:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1504       1491         13          0         91        764
-/+ buffers/cache:        635        869
Swap:         2047          6       2041 

Source: as mentioned, the excellent www.linuxatemyram.com -- please visit for more information.

share|improve this answer
1  
@geirha: Thanks for the link... It was very informative and I liked the experiments given at the end!! –  Forbidden Overseer Jun 25 '12 at 19:20
    
@izx: tbh, I am having a hard time deciding accepted answer. Not to mention, this link was actually informative in every other way... ;) –  Forbidden Overseer Jun 25 '12 at 19:27
    
@ForbiddenOverseer: see my comment in my answer for a detailed reply -- I gave you the short version of why you shouldn't do it, but then answered your question anyway, giving you the power to experiment and try it out for yourself. If you don't think cleaning/dropping the cache helps, just don't do it anymore :) –  izx Jun 25 '12 at 19:51
    
@izx, I found it a bit hard to do that for this case. However, you did write a useful text on the matter, so perhaps you could just add the url to your answer, and we delete my answer? –  geirha Jun 27 '12 at 9:10
    
No need, your link in an excellent resource; I just incorporated some parts into the answer (with attribution) so that it's now a perfectly valid alternative (in fact the better answer as seen by the public!) Great job, upvoted - welcome to 5k! –  izx Jun 27 '12 at 9:51

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.