In these days of fast SSDs, are there still uses for a RAM disk, beyond extreme niches?
In these days of fast SSDs, are there still uses for a RAM disk, beyond extreme niches?
I would personally go with a "normal" RAM disk in this case, but CPUs only have a limited amount of RAM and memory channels available. Complex operations on RAM disks may also increase the load on the CPU which can be a performance downside if you're doing things like compiling large code bases. Coupled with a battery backup, this looks like a pretty neat solution to SSDs for write-heavy operations, assuming you persist the important data periodically on something else (such as a hard drive).
I'd be wary of bit flips running this card, though. Without ECC, bitflips in RAM are just something you should be expecting. Normal RAM doesn't operate with the same data for an entire year, but this semi-permanent setup may be more vulnerable to bitflips.
I know RAID cards will often contain a battery backed RAM cache for file operations in case the power goes out, perhaps this card can be useful for that as well? With ZFS you can set up all kinds of fancy buffering/cacheing and I imagine an SSD write cache would show wear and tear much faster than one of these cards, and you can't exactly hot swap M.2 cards. A couple of cheap gigabytes of persistent write cache may just be the solution some people have been looking for.
C2 Backup agent stores dedup/chunks data by default in ProgramData, which is stored on C:... which is usually a SSD nowadays.
I noticed a 3:4 ratio between written data in local dedup folder vs uploaded data volume on the remote C2 5 TB storage (suscribed a C2 Business).
TBW grew indeed horrifyingly fast on the SSD, and I estimated it would completely wear it in about a year or so, with the 2 TB and growing data to backup with my standard retention scheme.
So I made a 32 GB (16 GB was not enough peak size) lmDisk ramdisk with backup/restore at shutdown/startup (it is featured by lmDisk and quite nicely), mounted in place of the dedup folder, and ran my tasks.
poof, reduced TBW on SSD by 99%.
(4x16 GB DDR4 ECC Reg on my server, so not concerned about memory errors)
Either way, how many terabytes were being written each day? And how much can your drive take? It looks like I could go pay $60 right now for 600TB of endurance, and $35 for 200TB of endurance. If you already have the extra ram than go for it but it doesn't seem like a setup to make on purpose.
Maybe your backup system has far more writes than mine? I have terabytes of backups but the average written for each daily backup is about 10GB.
About 150 TBW endurance on a 250 GB Samsung M.2 NVMe Evo 970+. On paper that is, but since it is the OS SSD with Windows Server 2022 STD (sole DC AD/DHCP/DNS/Hyper-V), in production, I won't take any risk. RAID 1 in this scenario would have changed nothing. On the side, I have 40 TB RAID10 for storage.
So I cancelled the first C2 exec (with C2 encrypt on) when I reached 195 TBW on the SSD. Monitoring the ramdisk use still shows about 3:4 ratio on complete snapshot.
I have about 1 million files on the 2,29 TB data to backup.
I had indeed the RAM sticks available for free, simply had to take them (2x16 GB ) from a decomissioned ML350 Gen9 (which uses DDR4-2133P ECC Reg). It now serves me as a bench, litterally.
SSDs are also consumable, as mentioned in other comments, so RAM disks are perfect for a scratch disk. HDDs can also serve as a scratch disk, but some tasks also appreciate the aforementioned faster transfer speeds and/or lower latency of SSDs or RAM.
Well, anything that doesn't require persistence!
Not niche at all. Using a RAM disk for building C++ applications is one of the oldest and most basic build optimization tricks around. It's specially relevant when using build cache tools like cache, which lead large C++ builds to no longer be CPU bound and become IO bound.