Just wondering, have you ever made anything useful with a RAM disk in production? I wonder if the performance benefit they afford possibly outweighs their temporary nature in a specific circumstance.

I've only ever used one once, and it wasn't for performance. It was when I needed some writable disk space on a server showing hard drive errors – it gave just enough space for me to install the 3ware RAID utility to identify the dodgy disk.

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

Yup, Windows PE uses them for loading the PE environment into memory prior to imaging a PC.

I've always been attracted to the notion of using a RAM disk for my swap file location, but never really got round to trying it out, and to be honest I'm not totally certain how well it would work in practice.

Why would you use a RAM disk for your swap when Windows would rather use that RAM for... RAM?
–
ErnieJul 22 '09 at 21:03

In the same vein, all LinuxLIVE disks use a RAM disk for their filesystem.
–
sysadmin1138♦Jul 22 '09 at 21:10

2

@Ernie: I marked up your answer cos it tickled my funny bone. So true. It was mostly back in the Windows 98 days and would have been a symptom of frustration at constant hard disk grinding. :)
–
Darth SatanJul 22 '09 at 21:14

1

There is a RAM disk (sorry, can't remember it's name) that allows you to use the memory above the 3GB limit on a 32bit OS to create a RAM disk. This is specifically for the swap file.
–
pipTheGeekAug 19 '09 at 17:39

@pip Now, that would actually make some sense.
–
SkyhawkSep 27 '11 at 20:04

A common use is to put MySQL's tmpdir on a ramdisk (e.g. tmpfs) if your web application creates a lot of on-disk temporary tables, i.e. Created_tmp_disk_tables is large and getting larger all the time.

My netbook rsyncs my Firefox profile to a RAM disk on boot, removing the very slightly irritating pauses caused by the urlclassifier file being updated on the not-fast-to-write-to SSD after page loads. It rsyncs it back on full shutdown so new bookmarks and such are not lost between boots (using the inplace option which reduced the number of writes needed in the simple tests I performed) or when I command it to (i.e. after making a number of changes like installing+configuring plugins).

They are also useful for some performance tests when you don't want disk IO to have much impact on the test but /dev/zero and friends won't do for some reason.

I really like the idea of using to hide the write penalty of SSD. Heck you could even have a directory watcher of sort watch key folders/files (like your bookmarks) and sync them on change in the background. Very cool.
–
GoyuixJul 22 '09 at 23:02

They're most useful when going totally disk-less, or when using the disks only for a particular format that the OS wouldn't boot from.

I know it's not a server, but on old macs you used to be able to set a ram-disk up and then install a minimal OS 7 into it, set it as your boot volume, then reboot from it. It seemed scary, but it always worked, and it definitely made the finder act more responsive. Some claimed it even made photoshop run faster, but I was never clear on that.

On a firewall the hard drive was replaced with a compact flash card. A RAM drive is used because CF cards have limited write cycles. On shutdown anything in the RAM drive that needs to be preserved is transferred to the CF card and reloaded on reboot. I am currently looking into creating Linux thin clients using the same idea.

There are legitimate uses for a RAMDISK, but not many. The system cache provides most of the benefits of a RAMDISK without the disadvantages. A RAMDISK requires tying up a substantial amount of RAM when it may be better used for other purposes. You will often optimize one aspect of performance but lose it elsewhere.

Incidentally, using a RAMDISK for the pagefile is completely nonsensical. In virtually every case it will be better to let the system use the RAM as it sees fit.

-1: He is not asking should you, but what have you done with it in production.
–
Robert MacLeanJul 23 '09 at 8:23

If the OS would have a switch that would tell it "please cache this folder to RAM at all times because it's my performance bottleneck" then I would agree with you. Otherwise you can often notice considerable performance improvements when you use a RAMDisk for caching some often-used data.
–
Vilx-Dec 1 '09 at 10:37

I haven't seen ram disks used for a long time, but I think that's because tools like memcached allowing for greater scaling and the fact that you can get such fast hard drives now (thinking of SSD drives) that performance is not such a consideration (see this post for how it didn't make any major differences).

An example of an interesting using of memcachd is Twitter. A very smart idea for ramdisks is a privacy system, especially for local user - just think shutdown and the data is gone (idea from Surasoft).

Back when I ran sendmail, I used a ramdisk (technically, Linux tmpfs, but it's functionally the same thing) for the hoststat database. It takes up very little room, but it creates a ton of inodes. Sendmail didn't (at the time) do any housekeeping on it, and it grows quickly even on a modestly busy mail server. I used a ramdisk so my cleanup script wouldn't cause the disks to thrash about due to all the directory lookups.

Solaris mounts /tmp in ram (or swap, depending on how you look at things), and you can set up Linux to do the same. Ages ago, I had a the same set up on my OS/2 box, I'd unpack stuff there, and it was good for a speed improvement (original was on disk, not having to hit disk was a win, and OS/2 had a fixed size disk cache).

Although it's not literally a RAM disk, the architecture of Mailinator is in the same spirit. Basically, since the content Mailinator handles is not 'valuable', they can afford the risk of its loss to dramatically improve performance.

By putting eventually needed driver modules into the ramdisk, you can keep a small, modular kernel, and still boot from many different devices (from a "normal" disk, over different raid controllers to a root filesystem on a network via NFS) - without having to compile your drivers into the kernel.

That alone should be enough reason for ramdisks to exists :)

And then, although I never used one for anything else but the above, yes, they can be useful in situations where you have some reasonable amount of larger temporary data to write very often, where it might not be a big thing when it get's lost in the probably rare case a server goes down, and very fast reading and writing is required

I use a ramdisk for compiling (/tmp is set up as tmpfs on my computer). I've never bothered timing it though.

On Windows I used to use a ramdisk as my scratch disk in Photoshop (since it insists on using one even if you have way more memory than it needs). I think it would be interesting to put the textures folder for World of Warcraft on a ramdisk, but I stopped playing before I got enough memory to try it.

I store sessions in mysql on a RAM disk. Much better than the memory table type as you can have indexes, and fewer contention problems and write delays than hoping that the system will sort it out - databases want to make sure your data is secure, we don't really care, just want it fast. Scheduled reboots can copy to disk then back (though we tend to just let the sessions expire), and it was less work to implement than changing the sessions store to use memcached (you can't do queries to expire old sessions in memcached - it's not as simple as letting them expire).

My home server runs an Internet proxy (FreeProxy). Since it's a cheap server, and the hard disks aren't the fast ever, I use a 1GB RAM disk for the location of the proxy cache files. Makes a huge difference in performance, and only gets lost when the server is rebooted (once a month or so depending on Windows Updates!).

With Solid State Drives getting bigger and cheaper ( $1-$2 per GB for the smaller disks as of this writing ) every week, with write cycles in the 10's of years of 24/7/365 use, DRAM based RAM disks are getting less and less viable.