This BiblioTECH TechNote discusses the use of dynamic memory when running a BiblioTECH Server in a Hyper-V based virtual machine. Microsoft Server includes the ability to allocate memory to Hyper-V based virtual machines both statically and dynamically.
On top of the memory required by the operating system, memory consumed by all services and any running applications, a BiblioTECH Server will make three types of demands on memory.
During start up, the BiblioTECH Server will build ‘in-memory’ lists. These will need memory to roughly the size of your database plus around 10%. Once the server has started, while there may be minor variations, this memory allocation is effectively fixed in size.
During normal operations, while processing client requests, additional memory needs to be allocated. This memory is consumed on demand and then released.
Note: there could be several such transactions occurring at the same time.
Server Tasks memory
At various times throughout the day, a BiblioTECH Server will perform server-based tasks (sending emails, backups, etc.). These can require the allocation of significant amounts of additional memory for each task.
Memory Usage and Performance
If memory is allocated in Hyper-V as static, then the memory will be available on demand – no issues. However, if memory allocation is part static and part dynamic, a number of potential issues could arise:
Allocation of dynamic memory is not instantaneous–there must be a delay (however small).This may have an impact on the responsiveness of the system.
Over-Commitment of Memory–in situations where there are multiple virtual machines running on the same host computer, there is a temptation to over-commit the memory assigned to those virtual machines. This can be a good solution in that expensive server resources are utilised effectively.
However, each of the virtual machines running on the same host computer will make their own demands on memory. There is a chance that when the BiblioTECH Server makes a memory allocation request, there will not be enough memory available. If this did occur, there would be a performance hit to BiblioTECH (possibly severe).
The allocation of virtual machine resources (esp. CPUs & Memory) from the host computer's pool of resources is something that requires careful tuning.Each scenario is different and the requirements of a VM needs to be considered both for its own needs and for the impact on other VMs on the same host computer.
If you decide to utilise dynamic memory, you will need to tune the various parameters. As an initial starting point, try the following settings:
Start Up= 2GB (i.e. 2GB of static memory).
Maximum= 4GB (i.e. 2GB of additional dynamic memory).
Buffer= 30% (i.e. hold a reasonably sized chunk of memory available for this VM).
Priority= 70% (i.e. give the BiblioTECH VM a higher then average priority).