14

My PC has 8 Gb of ram. Is there any way to make ubuntu use most of it? I mean rarely drop caches and keep once opened programms in ram longer, preload apps on boot, etc.

2
  • Does Ubuntu drop caches or moves open programs to swap? Oct 4, 2012 at 15:36
  • Do you have 64-bit or 32-bit version? Oct 4, 2012 at 16:02

2 Answers 2

8

You could make a ramdisk for certain directories using tmpfs

For example for the ~/.cache/ directory, which google chrome and chromium use to cache data, the entry in /etc/fstab would be:

tmpfs /home/your_username/.cache tmpfs defaults,size=1024M 0 0

However, it should be noted that the contents get lost with each reboot.

Anther suitable directoriy might be /tmp. Note that you can specify the size of the tmpfs in absolute or relative (to your RAM) values:

Use 1G of your RAM:

tmpfs /tmp tmpfs nosuid,size=1G 0 0

or, use 10% of your available RAM:

tmpfs /tmp tmpfs nosuid,size=10% 0 0
2

Preloading should be easy enough -- since linux caches/buffers as much as possible, simply cat the libs/binaries you want to "preload" to /dev/null -- that should warm up the cache. Start a script like the following at boot:

#/bin/bash
PROGS=("/usr/bin/jiha" "/usr/bin/doho")
for i in "${PROGS[@]}"; do 
    cat $i > /dev/null
    for j in $(ldd "$i"); do  # this does not work -- need to filter ldd output (awk)
        cat $j > /dev/null
    done
done

This will waste a lot of time by cat'ing some libraries again and again, it is a bit more complicated to preload the needed libraries only once - but the impact depends on the length of the PROGS-array.

The rest (rarely drop caches, ...) is pretty much taken care of by the system by default -- it takes what it can use and let it go only if need be.

HTH

5
  • Will this negatively impact disk i/o? Also, is it significantly different from just installing preload? Interesting question & answer though, I'm in the same situation as OP and I've just never seen >50% RAM usage. Oct 4, 2012 at 16:18
  • 1
    preload AFAIU will preload during operation based on programs/files opened by the user; this simple approach will prolong boot time, but speed up load-time of just the wanted apps, nothing more.
    – Tom Regner
    Oct 4, 2012 at 19:23
  • 1
    buffered/cached portions of the ram are shown as free in most tools -- as they will be freed if needed; but linux will cache every file you access as long as it can. If the total amount of memory used in your machine, including buffers/caches, never reaches 50% -- you have too much RAM for what you do :-)
    – Tom Regner
    Oct 4, 2012 at 19:28
  • Good to know, thanks. Ram is so cheap any more I just get extra. Nice for running the occasional VM, but probably not necessary. Oct 4, 2012 at 19:32
  • Yes, it's nice not to run out of memory - absolutely worth it. Jumped to 8G on both machines (work/home) - just nice.
    – Tom Regner
    Oct 4, 2012 at 19:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .