Answered by:
Dynamic Memory in the production environment

Question
-
Hi,
We configure all production VMs with static memory on Hyper-v 2012
we need to make sure there is no negative impact on VM performance if we use Dynamic memory , as we read for 2 years not recommend to use dynamic memory in the production.
I preferred the answer with Trusted URL
Ramy
- Edited by Ramy Shaker Monday, July 28, 2014 11:26 AM
Monday, July 28, 2014 8:52 AM
Answers
-
Hiya,
The best answer you can get is, that it is dependent on the application running on the server O/S.
The reason that dynamic memory is not recommended for production environments, is that many applications are not supporting it. That is usually seen on memory intensive applications(SQL is an example) or simply because of caching types of functions. (SharePoint is an example).
The major concern here is when VM's are decreasing the memory for a VM, the application does not understand this. Usually it is not a problem when increasing the memory. - Again it will depend on the application.
Think of it as hot swap memory and how you used to use that in the physical machine days.
Also when there is not adequate memory, operating system will use paging. Paging uses disks and disks has a lower access time than memory.
In general dynamic memory is easier to control than dynamically expanding disks, as you can set the buffer size of the memory, which is still not available for the dynamic disks.
Besides the above, the following links states:
"Workloads that are not NUMA-aware will not take advantage of virtual NUMA. However, the guest operating system may perform some NUMA optimization. Enabling Dynamic Memory (therefore presenting only a single virtual NUMA) should not cause performance degradation"
http://technet.microsoft.com/en-us/library/dn282282.aspx
- Edited by Jesper Arnecke Monday, July 28, 2014 11:17 AM
- Proposed as answer by Tim CerlingMVP Monday, July 28, 2014 1:34 PM
- Marked as answer by Ramy Shaker Tuesday, July 29, 2014 3:58 PM
Monday, July 28, 2014 11:08 AM
All replies
-
Hiya,
The best answer you can get is, that it is dependent on the application running on the server O/S.
The reason that dynamic memory is not recommended for production environments, is that many applications are not supporting it. That is usually seen on memory intensive applications(SQL is an example) or simply because of caching types of functions. (SharePoint is an example).
The major concern here is when VM's are decreasing the memory for a VM, the application does not understand this. Usually it is not a problem when increasing the memory. - Again it will depend on the application.
Think of it as hot swap memory and how you used to use that in the physical machine days.
Also when there is not adequate memory, operating system will use paging. Paging uses disks and disks has a lower access time than memory.
In general dynamic memory is easier to control than dynamically expanding disks, as you can set the buffer size of the memory, which is still not available for the dynamic disks.
Besides the above, the following links states:
"Workloads that are not NUMA-aware will not take advantage of virtual NUMA. However, the guest operating system may perform some NUMA optimization. Enabling Dynamic Memory (therefore presenting only a single virtual NUMA) should not cause performance degradation"
http://technet.microsoft.com/en-us/library/dn282282.aspx
- Edited by Jesper Arnecke Monday, July 28, 2014 11:17 AM
- Proposed as answer by Tim CerlingMVP Monday, July 28, 2014 1:34 PM
- Marked as answer by Ramy Shaker Tuesday, July 29, 2014 3:58 PM
Monday, July 28, 2014 11:08 AM -
To add to Jesper's reply.
He mentioned one great example - SQL. The SQL team had to build support into SQL to work with Dynamic Memory - and thus it only worked after a certain release of SQL. Since SQL never wanted to give memory back, it always took all that it could.
Exchange had / has to do the same. The mailbox role is a classic example of another application that does not give memory back.
So, as Jesper stated, you will never see a blanket statement of turn it on. At the same time, you stopped seeing statements of 'don't turn it on'. You will not find a current blanket statement of 'don't use it' - but you will always find statements of 'turn it on, test it with your application'.
Brian Ehlert
http://ITProctology.blogspot.com
Learn. Apply. Repeat.Monday, July 28, 2014 3:08 PM