Using a RAM disk as a Photoshop CS4 scratch disk
The original version of this article can be found here. That version established that a RAM disk was ineffective as a Photoshop scratch disk on Mac OS X Leopard, as well as having a limitation of 2.1GB for any single RAM disk.
In Mac OS X Snow Leopard 10.6, the 2.1GB limit on RAM disk size has been eliminated.
Test machine and test notes
An 8-core Mac Pro Nehalem 2.93GHz with 64GB memory as eight 8GB modules.
The 8GB memory modules were provided by OWC, see my review of these awesome 8GB modules.
The results you’ll get with a RAM disk for Photoshop CS4 scratch volume depend on what you’re doing.
The 4-way RAID 0 stripe used for comparison consisted of four Hitachi 7K2000 hard drives, the fastest SATA drive I had tested as of January 2010. The striped partition used tests out at about 520MB/sec sustained speed, or about 1/2 to 1/3 the speed of the RAM disk.
I tested with the diglloydMedium and diglloydHuge benchmarks.
For most users, the diglloydMedium benchmark is most appropriate (16GB scratch space used).
diglloydMedium benchmark — a small win
I used an 18GB RAM disk because the test uses almost 16GB of scratch space.
Hitachi RAID: 41 seconds
18GB RAM disk: 37 seconds
The RAM disk dropped time by about 10%.
The reason performance isn’t a lot better is not because Photoshop is somehow maxed-out by CPU speed (far from it), rather it’s that Photoshop is not coded efficiently, and can’t use much more than 500MB/second I/O speed, which is shown by previous testing. It’s a performance bug that we can hope gets fixed in CS5.
diglloydHuge benchmark — performance hit with RAM disk
This benchmark uses ~56GB of scratch space. A 50GB RAM disk was used, which means the RAM disk fills up before the test is over. Thereafter, that space is of no benefit whatsoever to the subsequent portion of the test. Results are worse with a larger RAM disk.
A large RAM disk uses memory that could otherwise be used by the Mac OS X unified buffer cache. Furthermore, the system starts paging out the memory used by the RAM disk, defeating the goal of having a RAM disk in the first place! The performance loss is substantial.
Hitachi RAID: 166 seconds (no RAM disk)
32GB RAM disk: 256 seconds
50GB RAM disk: 376 seconds
Once the RAM disk fills up, it sits idle (unless one goes back in Photoshop History, which will read from it).
Here’s what’s responsible for the performance loss: virtual memory paging. The Page outs figure should always remain at zero for an optimal system. In my case, that 2.92GB was paged out to my boot drive, an Intel 80GB SSD, which is not particularly fast at writes.
See this performance test using the 64GB memory vs 32GB, etc.
The value of a RAM disk for Photoshop CS4 scratch is marginal compared to a fast 4-drive RAID 0 stripe, but if the scratch size and RAM disk size and available memory are balanced, a modest gain in performance is available.
A user without a fast 4-way stripe will naturally see larger gains. But as this was written four Hitachi 2TB drives cost about $720, while 64GB memory cost about $3600. And of course those hard drives can be used not only for a fast scratch partition but ~8TB of data storage. So to max-out your system, get the hard drive upgrade done first, then add monster memory.