Lots of ram. How to use it?

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.


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

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