I'm using Ubuntu 10.04(64bit) for my desktop.
The machine has a 5GB RAM.
I want to use RAM disk(1G or 2G) but I don't know how can I do this.
Is there any opensource product of RAM disk?
The technology is built into the kernel, you don't need any extra tools. In fact, you already have a few RAM disks (which you shouldn't use, they're reserved for the system), which you can see by doing
grep -w tmpfs /proc/mounts
To set up a 2GB RAM disk mounted on /ramdisk
, add the following line to /etc/fstab
:
ramdisk /ramdisk tmpfs mode=1777,size=2g
Then mount the disk with the command mount /ramdisk
(this will be done automatically when you reboot).
The indicated size is a maximum, the disk only uses as much memory as the files that are on it.
You can change /tmp
to be a RAM disk. In the /etc/fstab
line above, put /tmp
rather than /ramdisk
, then reboot.
The first time you reboot after changing /tmp
to be a RAM disk, the files that were in /tmp
will be hidden. That's harmless, except that they're wasting a little disk space. You can clean them up (after you've rebooted with /tmp
on the RAM disk) by doing
mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt
The mount --bind
command makes /mnt
a duplicate view of your root filesystem; but while the RAM disk now obscures /tmp
on the root view, nothing is obscuring /mnt/tmp
.
ADDED: You can switch /tmp
to a RAM disk without rebooting, it's just a little more complicated. Add the line to /etc/fstab
as above, then run the following commands:
mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .
Then delete /tmp.old
after your next reboot.
The reason you can't just move files from /tmp.old
to /tmp
is that some critical programs have files open in /tmp
, for example /tmp/.X11-unix/X0
which the X server listens on and every GUI program opens when it starts. Moving a file to a different filesystem means copying it and deleting the old one, so you would end up with the X server still listening on /tmp.old/.X11-unix/X0
but X clients contacting /tmp/.X11-unix/X0
in vain. On a server, you might get away with a move if you're careful.
/tmp
over to tmpfs
. It's not necessary, and I've edited my answer to explain how to do it, but it's more complicated. There's no mkfs
involved because there's no underlying storage to prepare, the kernel handles everything.
Aug 14, 2010 at 18:43
/tmp
on the disk increases the frequency of syncs), but this is an unreliable subjective impression. I've never tried to benchmark.
Oct 28, 2010 at 22:21