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