Overclock.net - An Overclocking Community - View Single Post - RAMDisks Roundup and testing

View Single Post
post #2 of (permalink) Old 04-11-2013, 06:44 AM - Thread Starter
Brokenstorm
New to Overclock.net
 
Brokenstorm's Avatar
 
Join Date: Apr 2012
Posts: 216
Rep: 42 (Unique: 26)
Testing Methodology & Results

I'm going to try to detail my testing methodology as much as I can, so to make it easier for other people to run their own tests and compare results.

Test System Setup
CPU                           Intel Core i7-920 @ 3.6GHz
Motherboard               Asus P6T
Memory                     36GB (3x4+3x8) DDR3-1600 (10-10-10-27)
Hard Drive                  OCZ RevoDrive
Graphics Card             AMD Radeon HD 7970 @ 1050/1500
Operating System        Windows 7 Pro x64 (fully updated with latest drivers)

The only major tweaks I did were to disable the pagefile, hibernation and superfetch in order to keep results as constant as I can.

Most of the information about how different RAMDisks handle memory allocation was made available by the tools at sysinternals. If you want to get a more in depth understanding of the inner working of windows I highly recommend you try those tools.

RAMDisk memory allocation types:
        Paged Pool: Kernel-allocated memory backed by RAM or the paging file.
        Nonpaged Pool: Kernel-allocated memory always backed by RAM, has large-page support. Require a block of contiguous memory.
        Driver Locked: Memory allocated by a driver and always backed by RAM.
        Process Private: Backed by RAM or the paging file.


Tests
I'll run 2 set of tests, one with a small RAMDisk (suitable for browser cache), the other with a large RAMDisk (suitable for loading games)
        -4GB (128MB for RamPhantomEX, 640MB for Bond Disc)
        -30GB (except Bond Disc, Dataram RAMDisk, Gizmo Drive, RamPhantomEX)

Shutdown/Boot times:
        -Measured manually and as reported by the Performance Monitoring events
        -Each boot is repeated twice and the average is taken as the result
        -I've set up a Task Scheduler to open the Event Viewer on a Diagnostics-Performance event. The system remains idle until the Event Viewer opens.
        -I'll run a this test for each size with an empty and a full image (for programs that allow load on boot)

Load/Unload times:
        -I'll test the creation and load time for 4GB and 30GB RAMDisk. The timer will stop when windows explorer detects the drive.
        -For unload time the timer stops when windows explorer can't detect drive.
        -All of these test are worst case scenario. For example, a 4GB RAMDisk will be filled then unloaded. A note will be added mentioning the performance when no changes are made to the image.
        -I'll only measure those where it makes sense. (A program that doesn't allow backups won't have value for image load/unload)

Game Load Times:
        -Path of Exile: Open the game and use every waypoint of act 1 and 2 starting from act 3.
        Timer starts when opening the game and stops when the last zone is loaded.


Default Results
Run 1
Shutdown/Boot/Reboot: 2848ms--19643ms--49s
PoE: 2m48.24s

Run 2
Shutdown/Boot/Reboot: 2697ms--18656ms--45s
PoE: 2m38.69s


Results
ArchiCrypt Ramdisk
Memory allocation: Process Private (backed by RAM and handled by a service)

4GB (FAT32)

30GB (FAT32)

NTFS results were slightly slower but still very similar.

Shutdown/Boot times (The trial version doesn't allow to load a RAMDisk on boot, so add the image creation/load time to get an approximation)
No RAMDisk loaded:
Shutdown/Boot/Reboot: 2766ms--18535ms--47s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3427ms--18233ms--46s
4GB RAMDisk:
Shutdown/Boot/Reboot: 25578ms--18233ms--68s
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 4814ms--18462ms--47s
30GB RAMDisk:
Shutdown/Boot/Reboot: 33209ms--18347ms--77s
ATTENTION!!! Since ArchiCrypt runs as a service it is subject to the WaitToKillServiceTimeout. Meaning that if it isn't done doing whatever it's doing by that time Windows simply kills it. Meaning say goodbye to your data because it's gone (at least what hasn't been saved yet).

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 4.11s--0.88s
        4GB RAMDisk image load/unload time: 25.71s--23.61s
        30GB Volatile RAMDisk creation/unload time: 8.07s--0.88s
        30GB RAMDisk image load/unload time: 2m54.48s--2m47.36s
Images are always the size of the RAMDisk they are associated to.
Empty images take as long to load as full ones.
When no changes are made to an image, unload times are the same as volatile disks.

Path of Exile test: 1m31.59s

Noteworthy options:
Allow the creation and use of templates, which are image of RAMDisks that don't save changes made to them.
Can format to another file system, images will preserve the change.


Bond Disc
Memory allocation: Driver Locked

640MB (FAT)


Shutdown/Boot times:
No RAMDisk loaded:
N/A (the RAMDisk is loaded on boot, this setting cannot be configured)
640MB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2735ms--19239ms--47s
640MB RAMDisk:
Shutdown/Boot/Reboot: 28085ms--39793ms--91s
640MB RAMDisk (mirroring/parity off):
Shutdown/Boot/Reboot: 16740ms--30251ms--70s

Load/Unload times:
        640MB Volatile RAMDisk creation/unload time: instant--instant
        640MB RAMDisk image load/unload time: 22.77s--26.41s
        640MB RAMDisk image load/unload time (mirroring/parity off): 11.97s--14.14s
Images are 3 times the size of the content in the RAMDisk they are associated to (to provide data mirroring and parity)
Empty images take as long to load as volatile disks.
When no changes are made to an image, unload times are the same as volatile disks.

Path of Exile test: N/A

Noteworthy options:
Highly specialized software, offer many encryption and archival options.
Cannot format to another file system.


Buffalo Ramdisk
Memory allocation: Unknown. RAMDisk memory is not even visible to windows

4GB (FAT32)

30GB (FAT32)


Shutdown/Boot times (I was able to set up symbolic links so that the backup would be on my 2TB 7200RPM drive. The Problem is that Buffalo RAMDisk seems to operate at the same level as a bootkit (it loads itself before windows) and fails to read the symbolic links, so only the shutdown values will be correct. To get an approximation of loading time add the Shutdown time to the Boot time)
No RAMDisk loaded:
Shutdown/Boot/Reboot: 2879ms--18711ms--47s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2776ms--19911ms--46s
4GB RAMDisk:
Shutdown/Boot/Reboot: 31543ms--20126ms--76s
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2792ms--23212ms--49s
30GB RAMDisk:
Shutdown/Boot/Reboot: 200475ms--23615ms--273s

Load/Unload times
        N/A (The RAMDisk can only be loaded/unloaded by rebooting)
Images are always the size of the RAMDisk they are associated to.
Empty images take as long to load as full ones.
When no changes are made to an image, unload times are the same as volatile disks.

Path of Exile test: N/A (needs NTFS since 1 file is over 4GB)

Noteworthy options:
Splits image in 512MB files
Cannot change backup location (defaults to C: drive)
Cannot format to another file system.


Dataram RAMDisk
Memory allocation: Driver Locked

4GB (FAT32)

4GB (NTFS)


Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 3238ms--18338ms--46s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2963ms--18446--47s
4GB RAMDisk:
Shutdown/Boot/Reboot: 5290ms—21548ms--95s (see note)

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 0.81s—1.21s
        4GB RAMDisk image load/unload time: 28.48s—44.87s (see note)
Images are always the size of the RAMDisk they are associated to.
Empty images take as long to load as full ones.
When no changes are made to an image, unload times are the same as when the whole disk has been written to.

Path of Exile test: N/A

Noteworthy options:
Announces that the data has been successfully written to disk when it only has been dumped to memory (a power failure before Windows has finished writing the data would result in corrupt data and the time Windows give for Shutdown is misleading since even if everything has been unloaded and it's ready to shut down it still has to finish writing the backup to disk.). For my test I stopped the timer when disk I/O stopped.


Gilisoft RAMDisk
Memory allocation: Driver Locked

4GB (FAT32)

30GB (FAT32)

NTFS results were slightly slower but still very similar.

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 2571ms--19792ms--46s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2852ms--18368ms--45s
4GB RAMDisk:
Shutdown/Boot/Reboot: 24338ms--24119ms--70s (see notes)
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2626ms--18896ms--47s
30GB RAMDisk:
Shutdown/Boot/Reboot: 182772ms--25108ms--238s(see notes)

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 0.95s--1.98s
        4GB RAMDisk image load/unload time: 24.72s--30.37s
        30GB Volatile RAMDisk creation/unload time: 14.93s--2.19s
        30GB RAMDisk image load/unload time: 3m00.17s--3m10.91s(see notes)
Images are always the size of the RAMDisk they are associated to.
Empty images take as long to load as full ones.
When no changes are made to an image, unload times are the same as volatile disks.

Path of Exile test: 1m26.82s

Noteworthy options:
Splits image in 2GB files, any change require a full rewrite of the entire image.
Non-volatile disks are not available directly after boot. You have to wait for the full image to be loaded in memory.
I had to create the image files manually to create an image of the 30GB RAMDisk. Otherwise I Would either get a "Device is busy" or "Writing image remarks error", even when Gilisoft RAMDisk was the only program open.
Creating a RAMDisk, then removing it, then creating another one can lead to a situation where it will take over 5 minutes to create the new RAMDisk. I recommend you reboot before you want to create a new RAMDisk (make sure automount is off).


Gizmo Drive
Memory allocation: Paged Pool (allocated only when needed)

4GB (NTFS)


Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 3176ms--19791ms--46s

Load/Unload times
4GB Volatile RAMDisk creation/unload time: 1.54s--2.09s

Path of Exile test: N/A

Noteworthy options:
Can't format to FAT32


ImDisk
Memory allocation: Process Private (allocated only when needed)

4GB (FAT32)

30GB (FAT32)

NTFS results were slightly slower but still very similar.

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 3229ms--18546ms--46s

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 3.46s--0.96s
        4GB RAMDisk image load/save time: 25.36s--44.57s
        30GB Volatile RAMDisk creation/unload time: 11.36s--0.96s
        30GB RAMDisk image load/save time: 2m45.09--2m57.52
Images are always the size of the RAMDisk they are associated to.
Empty images take as long to load as full ones.
When no changes are made to an image, save times are the same as when the whole disk has been written to.

Path of Exile test: 1m23.34s

Noteworthy options:
Announces that the data has been successfully written to disk when it only has been dumped to memory (a power failure before windows has finished writing the data would result in corrupt data). For my test I stopped the timer when disk I/O stopped.


Passmark OSFMount
Memory allocation: Process Private (allocated only when needed)

4GB (FAT32)

30GB (FAT32)

NTFS results were slightly slower but still very similar.

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 3030ms--19816ms--46s

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 2.41s--0.84s
        4GB RAMDisk image load/save time: Was unable to save an image
        30GB Volatile RAMDisk creation/unload time: 9.96s--0.84s
        30GB RAMDisk image load/save time: Was unable to save an image

Path of Exile test: 1m22.22s

Noteworthy options:


Primo Ramdisk Ultimate
Memory allocation: Driver Locked

SCSI
30GB (FAT32)

30GB (NTFS)

Direct-IO
30GB (FAT32)

30GB (NTFS)

4GB results are very similar

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 2913ms--18377ms--46s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2942ms--19926ms--47s
4GB RAMDisk:
Shutdown/Boot/Reboot: 49153ms--46425ms--120s
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3014ms--19325ms--46s
30GB RAMDisk:
Shutdown/Boot/Reboot: 252441ms--182378ms--459s

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 1.44s (4.68s for Direct-IO)--0.94s
        4GB RAMDisk image load/unload time: 25.64s--1m36.88s
        30GB Volatile RAMDisk creation/unload time: 2.21s (5.69s for Direct-IO)--0.88s
        30GB RAMDisk image load/unload time: 2m47.44s--4m48.51s
Images are always the size of the RAMDisk they are associated to (on default settings)
Empty images take as long to load as full ones (on default settings)
When no changes are made to an image, unload times are the same as volatile disks.

Path of Exile test: 1m20.72s

Noteworthy options:
Only writes the changes made to an image.
Has a lot of options like delayed load, load only mode, unified invisible memory management, dynamic memory management and more that I haven't had time to look into.


RamPhantomEX
Memory allocation: Driver Locked

256MB (NTFS)


Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 2725ms--18785ms--45s
256MB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2927ms--20030ms--46s
256MB RAMDisk:
Shutdown/Boot/Reboot: paid version only

Load/Unload times
        256MB Volatile RAMDisk creation/unload time: instant--instant
        256MB RAMDisk image load/unload time: paid version only

Path of Exile test: N/A

Noteworthy options:


SoftPerfect RAM Disk
Memory allocation: Driver Locked

4GB (FAT32)

4GB (NTFS)

30GB (FAT32)

30GB (NTFS)


Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 3192ms--18275ms--46s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3150ms--19164ms--46s
4GB RAMDisk:
Shutdown/Boot/Reboot: 25063ms--41423ms--91s
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2780ms--21836ms--48s
30GB RAMDisk:
Shutdown/Boot/Reboot: 169179ms--185568ms--379s

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 3.94s--0.74
        4GB RAMDisk image load/unload time: 25.33s--27.56s
        30GB Volatile RAMDisk creation/unload time: 6.66s--0.86s
        30GB RAMDisk image load/unload time: 2m50.85s--3m02.03s
Images are always the size of the RAMDisk they are associated to.
Empty images take as long to load as full ones.
When no changes are made to an image, save times are the same as when the whole disk has been written to.

Path of Exile test: 1m20.60s

Noteworthy options:
No manual image save option


StarWind RAM Disk
Memory allocation: Driver Locked

4GB (FAT32)

30GB (FAT32)

NTFS results were slightly slower but still very similar.

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 3135ms--18848ms--45s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3049ms--18639ms--45s
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3063ms--21631ms--47s

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 2.65s--0.96s
        30GB Volatile RAMDisk creation/unload time: 15.80s--1.00s

Path of Exile test: 1m21.16s

Noteworthy options:
Formats to different file systems don't persist on reboot.
Disk are not available directly after boot.


SuperSpeed RamDisk Plus
Memory allocation: Driver Locked

30GB (FAT32)

30GB (NTFS)

4GB results are very similar

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 2633ms--18253ms--45s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2797ms--18810ms--45s
4GB RAMDisk:
Shutdown/Boot/Reboot: 4564ms--22242ms--79s (see notes)
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3171ms--19302ms--46s
30GB RAMDisk:
Shutdown/Boot/Reboot: 144572ms--32941ms--212s (see notes)

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 3.34s--1.96s
        4GB RAMDisk image load/unload time: 26.37--35.98s (see notes)
        30GB Volatile RAMDisk creation/unload time: 4.09s--2.73s
        30GB RAMDisk image load/unload time: 2m48.72--2m59.79s (see notes)
Images are the size of the content in the RAMDisk they are associated to.
Empty images take as long to load as newly created ones.
When no changes are made to an image, save times are the same as when the whole disk has been written to.

Path of Exile test: 1m21.26s

Noteworthy options:
Loaded images are available as soon as the RAMDisk is created and before all the content is in memory. For my test I stopped the timer when disk I/O stopped.
Announces that the data has been successfully written to disk when it only has been dumped to memory (a power failure before Windows has finished writing the data would result in corrupt data and the time Windows give for Shutdown is misleading since even if everything has been unloaded and it's ready to shut down it still has to finish writing the backup to disk.). For my test I stopped the timer when disk I/O stopped.


VSuite Ramdisk Server
Memory allocation: Driver Locked

Direct-IO
30GB (FAT32)

30GB (NTFS)

4GB results were very similar
SCSI results were slightly slower

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 2814ms--19107ms--46s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2732ms--21586ms--48s
4GB RAMDisk:
Shutdown/Boot/Reboot: 27369ms--42153ms--94s
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3091ms--150794ms--178s
30GB RAMDisk:
Shutdown/Boot/Reboot: 190556ms--315573ms--532s

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 3.32s--0.85s (6.48s--1.94s for Direct-IO)
        4GB RAMDisk image load/unload time: 26.74s--22.43s
        30GB Volatile RAMDisk creation/unload time: 2m10.39s--1.01s
        30GB RAMDisk image load/unload time: 5m05.79s--2m44.84s
Images are always the size of the RAMDisk they are associated to (on default settings)
Empty images take as long to load as full ones (on default settings)
When no changes are made to an image, unload times are the same as volatile disks.

Path of Exile test: 1m21.20s

Noteworthy options:
Quick Save mode, Quick Load move, Smart Mirror (only saves changes made to an image) and more that I haven't had time to look into.


WinRamTech (QSoft)
Memory allocation: Nonpaged Pool

30GB (FAT32)

30GB (NTFS)

4GB results were very similar

Shutdown/Boot times
No RAMDisk loaded:
Shutdown/Boot/Reboot: 3071ms--18240ms--45s
4GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 2975ms--23097ms--50s
4GB RAMDisk:
Shutdown/Boot/Reboot: 26930ms--47210ms--99s
30GB Volatile RAMDisk:
Shutdown/Boot/Reboot: 3281ms--22736ms--50s
30GB RAMDisk:
Shutdown/Boot/Reboot: 169279ms--208289ms--410s

Load/Unload times
        4GB Volatile RAMDisk creation/unload time: 3.55s--0.95s (see notes)
        4GB RAMDisk image load/unload time: N/A (see notes)
        30GB Volatile RAMDisk creation/unload time: 3.79s--1.70s(see notes)
        30GB RAMDisk image load/unload time: N/A (see notes)
Images are always the size of the RAMDisk they are associated to.
Empty images take as long to load as full ones.
When no changes are made to an image, unload times are the same as volatile disks.

Path of Exile test: 1m19.27s

Noteworthy options:
Only writes the changes made to an image.
Takes a long time to create the first image.
The only way to start/stop the RAMDisk is enable/disable it in Windows device manager.
Due to difficulties in managing multiple images, the results were not included

Brokenstorm is offline