{"id":10672,"date":"2010-06-17T17:51:00","date_gmt":"2010-06-17T17:51:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=10672"},"modified":"2010-06-17T17:51:00","modified_gmt":"2010-06-17T17:51:00","slug":"w2008-r2-sp1-dynamic-memory-explained","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=10672","title":{"rendered":"W2008 R2 SP1 Dynamic Memory Explained"},"content":{"rendered":"<p>Dynamic Memory can be a little confusing at first so I thought I\u2019d give it a go.&#160; It\u2019s a new feature in Windows Server 2008 R2 Service Pack 1, the beta of which will appear some time in July 2010.&#160; Dynamic Memory will support virtual machines running:<\/p>\n<ul>\n<li>Windows Server 2003, 2003 R2, 2008, and 2008 R2 Web, Standard, Enterprise, and Datacenter editions.<\/li>\n<li>Windows Vista\/7 Ultimate and Enterprise editions.<\/li>\n<\/ul>\n<p>The process is a mixture of memory hot-add and ballooning.&#160; First \u2026<\/p>\n<p>Each VM will have a bunch of settings:<\/p>\n<ul>\n<li>Do you want statically defined or dynamic memory for the VM?<\/li>\n<li>What will be the minimum amount of memory in the VM?<\/li>\n<li>What will be the maximum amount of memory in the VM?<\/li>\n<li>How much free memory\/buffer should the VM have?<\/li>\n<\/ul>\n<p>OK.&#160; Now the tricky bit.&#160; How does it work?<\/p>\n<p>The VM will boot up with the minimum amount of RAM.&#160; Let\u2019s say this is 1GB.&#160; As the VM\u2019s requirements grow, a VSC (Virtual Server Client) driver running in kernel mode in the VM will pull in memory from the host and supply it to the VM.&#160; This consumes more physical memory from the host.<\/p>\n<p>It is important to note that memory doesn\u2019t magically appear from thin air.&#160; The host must have the memory that is required by the VM \u2013 otherwise we get into a nasty performance situation.<\/p>\n<p>What happens on the way down when the memory requirements of the VM reduce?<\/p>\n<p>As the VM no longer needs memory, the ballooning process kicks in.&#160; Memory cannot be physically removed from the VM.&#160; Windows wouldn\u2019t like that!&#160; Instead, the VSC \u201ctricks\u201d it.&#160; This driver simultaneously:<\/p>\n<ul>\n<li>Reports to the VM that it is consuming the RAM that is being freed up.&#160; It isn\u2019t really.&#160; But this prevents Windows in the VM from trying to allocate those blocks of memory that won\u2019t really be there.&#160; This is the balloon.<\/li>\n<li>The VSC returns the free\/ballooned memory to the host so that it can be made available for other memory hungry VM\u2019s.<\/li>\n<\/ul>\n<p>As you can see in some of the demo\u2019s that I\u2019ve linked to recently, it\u2019s a pretty simple, rapid and easy thing to use.<\/p>\n<p>The trick here is not to abuse what Dynamic Memory can do.&#160; There\u2019s no point in over committing host servers.&#160; If you know that you have an average of 75% memory utilisation across your VM\u2019s then don\u2019t try to get twice as much out of the host.<\/p>\n<p>I think the sizing of the settings will be tricky.&#160; I think OpsMgr reporting will prove very useful in figuring out what is best to do and how to configure the settings.<\/p>\n<p>Where will Dynamic Memory be useful?<\/p>\n<ul>\n<li>VDI: No doubt!&#160; The big cost here are the GB\u2019s of RAM and that\u2019s usually the bottleneck in a host, not the CPU.<\/li>\n<li>VM Sizing: Just like in the physical world, it\u2019s hard to accurately size memory for VM\u2019s.&#160; Software vendors can be very conservative with requirements and you can end up with too much RAM in a VM.&#160; Now you can set a range and let the VM consume what it really needs.<\/li>\n<li>Labs: We usually have limited budgets so squeezing that little bit more for a couple extra VM\u2019s will be very nice.&#160; I wish I could do this right now for my book lab!!!<\/li>\n<\/ul>\n<p>As the Service Pack 1 beta and RC releases develop, I\u2019m sure MS will release more information about Dynamic Memory and engineering recommendations.<\/p>\n<div style=\"padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:983e04ea-e813-44cf-b61d-d34a998aa35f\" class=\"wlWriterEditableSmartContent\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/Hyper-V\" rel=\"tag\">Hyper-V<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Windows+Server+2008+R2\" rel=\"tag\">Windows Server 2008 R2<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Virtualisation\" rel=\"tag\">Virtualisation<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dynamic Memory can be a little confusing at first so I thought I\u2019d give it a go.&#160; It\u2019s a new feature in Windows Server 2008 R2 Service Pack 1, the beta of which will appear some time in July 2010.&#160; Dynamic Memory will support virtual machines running: Windows Server 2003, 2003 R2, 2008, and 2008 &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=10672\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;W2008 R2 SP1 Dynamic Memory Explained&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[20],"tags":[181,195,117],"class_list":["post-10672","post","type-post","status-publish","format-standard","hentry","category-hyper-v","tag-hyper-v","tag-virtualisation","tag-windows-server-2008-r2"],"aioseo_notices":[],"jetpack_featured_media_url":"","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/10672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10672"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/10672\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}