Options for unforeseen RAM disk capacity overflow

Started by hshah

Options for unforeseen RAM disk capacity overflow   03 June 2019, 18:27

I have 32GB of RAM in my desktop and am looking to allocate 16GB to a RAM Disk and have its .img stored on my SSD. That said, there is, theoretically, a chance that whatever I have making use of the RAM Disk could end up utilising all the capacity, and subsequently result in failures.

Is there any way of having some kind of "overflow" space where it would use the Hard Disk instead? The best analogy/comparison I can think of is Pagefiling, where in the most basic terms RAM is the primary and Disk starts getting used as a backup.
SoftPerfect Support forum - Andrew avatar image

Re: Options for unforeseen RAM disk capacity overflow   03 June 2019, 18:59

Unfortunately there isn't a way to dynamically manage RAM space with our product. Some other products feature dynamic memory allocation, for example, ImDisk. When the corresponding option is used, memory is allocated in blocks as files are written to the disk.

The downside to that approach is it's slower and may result in disk write errors if no free space is available.

Re: Options for unforeseen RAM disk capacity overflow   03 June 2019, 19:51

Cheers for the link. I read this thread and it is basically what I was thinking.

Do you have any plans to implement such a feature? If not, I would be interested to understand the reasoning behind it smile
SoftPerfect Support forum - Andrew avatar image

Re: Options for unforeseen RAM disk capacity overflow   03 June 2019, 20:56

Well, if you are specifically after backing some of a RAM Disk's space with a hard drive, we don't implement it for two reasons:
  1. It's quite difficult to implement from a technical perspective; and
  2. It's already part of the OS and it's called paging, or "page-filing".

There is simply no point in duplicating that mechanism. Let's take a look at the example with your PC:

You have 32 GB of RAM and created a 16 GB RAM Disk. This effectively removes 16 GB of RAM from the system, leaving another 16 GB for the system and applications. Now with a page file in place, the system can swap out infrequently used memory pages to the page file when more memory is needed. Say if you have a 32 GB page file, the system will let you use up to 32 + 16 = 48 GB automatically if required for applications. At the same time, a RAM disk is created directly in the physical non-pageable memory, meaning its contents is never written to a page file.

Obviously, everything will be sluggish if you exceed the available RAM and page swapping begins. Even if we implemented a similar mechanism in the RAM disk, it would likewise result in a drop in performance and possibly conflict with the system's paging strategy. So this is basically why it's not there.

In a nutshell, the whole point of our RAM Disk is to turn the extra memory that is definitely unused into a very fast disk; not the opposite - turning a physical disk into a slow, error-prone memory. wink

Re: Options for unforeseen RAM disk capacity overflow   03 June 2019, 22:06

Thank you for the explanation, it makes sense. I think I was over-complicating things in my head smile

Sometimes you can find a solution faster if you try the forum search, have a look at the knowledge base, or check the software user manual to see if your question has already been answered.

Our forum rules are simple:

  • Be polite.
  • Do not spam.
  • Write in English. If possible, check your spelling and grammar.

Author:

Subject

A brief and informative title for your message, approximately 4–8 words:

     

Spam prevention: please enter the following code in the input field below.

       **  **      **  ********  **         **     ** 
       **  **  **  **  **        **    **    **   **  
       **  **  **  **  **        **    **     ** **   
       **  **  **  **  ******    **    **      ***    
 **    **  **  **  **  **        *********    ** **   
 **    **  **  **  **  **              **    **   **  
  ******    ***  ***   **              **   **     ** 

Message: