What is a RAMDisk?
A RAMDisk is a virtual drive that uses RAM to store information. This can be thought of as the RAM pretending to be an incredibly fast hard drive so you can install non-volatile games/programs on it or make it a scratch disk.
In the simplest of terms, a RAMDisk is RAM in a hard drive costume. The RAM is still volatile, but builds and maintains an index throughout user-defined intervals in use; it will write to an index on non-volatile storage to keep data permanently.
To put things into perspective: 1866MHz RAM has a peak data rate of approximately 15GB/s, so even matched against the world’s fastest consumer-class SSD (or enterprise-class, for that matter), RAM will far-and-away outperform it.
Advantages/disadvantages of a RAMDisk
A RAMDisk offers quite a few unique advantages and disadvantages. The largest advantage to a RAMDisk is the 100-150x transfer speed boost over HDDs and even ~25x over SSDs (goodbye loading screens!). Because RAM does not wear noticeably from I/O like regular drives do, it can be helpful to people who want to boost performance by using it in a read/write intensive situation, like as a scratch disk for Photoshop or Premiere.
But RAMDisks are not without their fair share of disadvantages. The most immediate is decreasing the amount of available RAM to the host system; further, in the event of power loss, data on the RAMDisk that has not been backed-up will be lost in shut-down. RAMDisks can also drastically increase shutdown time if you are saving to an image on an HDD or SSD for permanent storage; if you’re loading that image on startup, it can drastically increase boot time.
These advantages and disadvantages should be taken into consideration before creating a RAMDisk. Some disadvantages can be mitigated through creative implementation and careful indexing, but they’re still present.
Unique Software Implementations
Different RAMDisk software takes different creative approaches toward the disadvantages of RAMDisks to try mitigate them as much as possible. One of these techniques is saving to an image so the user can retain data stored on the RAMDisk at shutdown. This is a fairly simple concept and some software even allows for auto-saving every “X” minutes (X is set by the user). But some software, like AMD’s RAMDisk, takes this a step further and keeps a running tab (record) of what is on the image; AMD’s RAMDisk then analyzes what, if anything, has changed and will only rewrite changes while leaving static data untouched. This leads to less wear on host drives and shutdowns taking much less time.
Another approach is featured by Imdisk, yet another RAMDisk solution. Imdisk uses dynamic RAMDisk scaling; in dynamic RAMDisk scaling, the user sets the max capacity limit for the RAMDisk, then as the user puts more or less data onto the RAMDisk, it’ll change the amount of RAM reserved. More RAM is accessible if your RAMDisk is empty, less if it is filling up.
NUMA can be useful for large server arrays, but for the majority of RAMDisk users, it will be completely irrelevant.
Who can best use RAMDisks?
RAMDisks are not usually for the average user. They appeal more to power users who want them for specific uses. Gamers with lots of RAM can benefit from the much lower loading times, users doing I/O-intensive tasks can also benefit from using a RAMDisk for quick retrieval of data or a scratch-disk, but outside of this, most users don’t need or want a RAMDisk.
We’ve got a series of RAMDisk benchmarks coming up in our next article on this topic, but as a bit of a spoiler, we’ve seen load times decrease as much as 2x-3x in games like PlanetSide 2 when using a RAMDisk.
Even if a user doesn’t have a purpose for a RAMDisk, I still suggest playing around with them just to learn about the process.
How to Create & Install a RAMDisk
You don't need to understand any complicated programming or scripting to create a RAMDisk, with thanks to programs like AMD RAMDisk, SoftPerfect RAM Disk, ImDisk, and many others. Creating a RAMDisk has become something quite simple and user-friendly.
To create a RAMDisk, you need to first download and install RAMDisk software. In this walkthrough, we will be using SoftPerfect RAM Disk since it’s free, fairly easy to use, and is my personal favorite. In this tutorial we will show how to make a RAMDisk that starts on boot-up and saves to an image.
First, in SoftPerfect RAM Disk, go to image at the top and then select “Create Image.”
Type your image name, define where it will be stored, and set its size in MB. I generally don’t change the image type or file system.
Click “Disk” at the top after creating the image. Select “Add Boot Disk” and in this menu choose the image you just made (your RAMDisk will be the size of the image automatically), the drive letter, and make sure to check “Save Contents to Image” so you don’t lose any data you place on your RAMDisk.
Clicking “advanced” brings up a number of options. Most users need not worry about many of them except the option to save the contents of the RAMDisk to an image every x minutes. This will ensure there is no data loss in the event of a power surge.
For servers, NUMA may be be useful, but for the majority of users it won’t be and can be ignored. Now simply click “OK” out of those two windows and your RAMDisk is made! Navigate to “Tools” and then “Settings” to check that SoftPerfect RAMDisk is set to launch automatically with Windows so it’ll automatically load on boot. You can now install programs on your RAMDisk and use it however you see fit. I personally find that file-intensive games like Planetside 2 benefit greatly from being on a RAMDisk.
Our next article on RAMDisks will include benchmarks for RAMDisks and how they affect performance.
- Michael “The Bear” Kerns.