How to tune vm to be less swap happy?
Hi everybody,
sorry to bother you with this question, but I feel that current vm defaults are not tuned for a workstation use, but for a file server/db server use. I work on a couple of machines with 128MB of RAM, tipically use KDE 3.0 and Netbeans (a Java IDE). Ok, I use bloated software, I should have more RAM. Fine. But what I don't understand is why the system keeps swapping data in and out just because it doesn't want to shrink the cache below 40 MB. My typical memory occupation is:
total used free shared buffers cached
Mem: 127096 123264 3832 0 1216 48164
-/+ buffers/cache: 73884 53212
Swap: 257000 62316 194684
Now, as you can see I would need 135 MB to keep all my programs in memory, and if you look at top output:
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
4397 wolf 9 0 79196 71M 30472 S 0,0 57,4 0:00 java 4398 wolf 8 0 79196 71M 30472 S 0,0 57,4 0:00 java
...
you'll notice that due to the cache behaviour not even netbeans fits enterely in memory. I really doubt that I can benefit from a 48MB disk cache since the system is swapping in and out every time I open konqueror, kmail and the like... is there anything I can do to shrink the cache and to allow a bigger part of my working set to fit into memory? Moreover, what vm tuning do you advice for a typical workstation use with memory hungry applications? Best regards
Andrea Aime
commence Andrea Aime quotation:
Quoted 7 lines
sorry to bother you with this question, but I feel that current vm defaults are not tuned for a workstation use, but for a file server/db server use.
[...] is there anything I can do to shrink the cache and to allow a bigger part of my working set to fit into memory? Moreover, what vm tuning do you advice for a typical workstation use with memory hungry applications?
I've found the rmap VM[0] to be a lot less swap-happy than the stock VM. For example, I don't come in in the morning to find that the updatedb run has pushed everything into swap and bloated the inode and dentry caches to ridiculous sizes. There is also a patch around for the stock VM, but I haven't tried it and I don't know what it does.
[0] http://www.surriel.com/patches/ -- I used the March 1 patch on 2.4.18 and am now running with the April 9 patch.
Signature · 3 lines
///////////////// | | The spark of a pin <[email protected]> | (require 'gnu) | dropping, falling feather-like. \\\\\\\\\\\\\\\\\ | | There is too much noise.
Quoted 5 lines · Sean
I've found the rmap VM[0] to be a lot less swap-happy than the stock VM. For example, I don't come in in the morning to find that the updatedb run has pushed everything into swap and bloated the inode and dentry caches to ridiculous sizes. There is also a patch around for the stock VM, but I haven't tried it and I don't know what it does.
Thank you for your answer, Sean.
I've tried 2.4.19-pre6 (with preempt-patch), 2.4.19pre7ac2 (with rmap), 2.4.19-pre7aa2. The rmap kernel behaved a bit better by avoid swapping-out to swap-in a second later (compared to aa), but still suffered (IMHO) from an oversized cache. The stock kernel was the worst one, of course. The final cache size doesn't seem to depend much on the kernel, that's because I asked for VM tune parameters. I also noticed that aa kernel dropped cache size down to 24MB, but only after one hour without any activity (had lunch...). BTW, please cc me, I'm not on the list,
Best regards
Andrea Aime