{"id":13594,"date":"2012-10-08T09:00:00","date_gmt":"2012-10-08T08:00:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=13594"},"modified":"2012-10-08T09:00:00","modified_gmt":"2012-10-08T08:00:00","slug":"thinking-about-cloud-self-service-and-hyper-v-dynamic-memory","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=13594","title":{"rendered":"Thinking About Cloud, Self-Service, and Hyper-V Dynamic Memory"},"content":{"rendered":"<p>I\u2019ve been doing some thinking about how to configure Dynamic Memory (DM) in a Windows Server 2012 Hyper-V cloud.&#160; One of the traits of a cloud is self-service.&#160; And that\u2019s why some thought is required.<\/p>\n<p><em>If you\u2019re not familiar with Dynamic Memory, then have a look at the <\/em><a href=\"https:\/\/aidanfinn.com\/?p=11289\" target=\"_blank\"><em>paper<\/em><\/a><em> I wrote on the feature as it was in W2008 R2.&#160; Then take a few minutes to update your knowledge of <\/em><a href=\"https:\/\/aidanfinn.com\/?p=12237\" target=\"_blank\"><em>the changes to DM in WS2012<\/em><\/a><em>.<\/em>&#160; <\/p>\n<p>I\u2019ve previously stated that you had to be careful with the Startup RAM setting in a cloud\/hosting scenario.&#160; The guest OS can only see the high-water mark of allocated RAM since the VM booted up.&#160; For example:<\/p>\n<ul>\n<li>A VM is configured with 512 MB Startup RAM and 8 GB Maximum RAM<\/li>\n<li>The VM boots up and the guest OS sees 512 MB RAM<\/li>\n<li>The DMVSC integration component starts up<\/li>\n<li>Pressure for RAM increases in the guest OS and maybe the VM increases to 768 MB<\/li>\n<li>Pressure reduces and the VM is now using 612 MB<\/li>\n<\/ul>\n<p>Imagine a customer who owns this VM, logs into it, downloads the SQL installer and runs setup.&#160; Setup will fail because the installer requires 1 GB of RAM for SQL to run.&#160; The guest OS can only see 768 MB \u2013 the high water mark since the VM booted up.&#160; That\u2019s a helpdesk call.&#160; Now scale that out to hundreds or thousands of VMs.&#160; Imagine all the helpdesk calls.&#160; Sure; you\u2019ve saved some money on RAM, but you\u2019ve had to hire more people to close calls.&#160; Trust me \u2026 no wiki or knowledge base article will sort it out.&#160; I\u2019ve been on the hosting service provider side of the fence and I\u2019m a hosting customer too <img decoding=\"async\" style=\"border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none\" class=\"wlEmoticon wlEmoticon-smile\" alt=\"Smile\" src=\"https:\/\/aidanfinn.com\/wp-content\/uploads\/2012\/10\/wlEmoticon-smile.png\" \/><\/p>\n<p>So my advice for W2008 R2 was to set Startup RAM to be 1 GB of RAM.&#160; Sure, lots of VMs remain idle in a cloud \u2013 you\u2019d be amazed how many might never be logged into, even if there is a monthly invoice for them.&#160; You\u2019ve reduced the helldesk calls but you\u2019re still using up RAM.<\/p>\n<p>Enter Windows Server 2012 Hyper-V (and Hyper-V Server 2012) \u2026<\/p>\n<p>We have a new setting called Minimum RAM, allow a VM to balloon down to <em>below<\/em> the Startup RAM when the VM is idle.&#160; All that idle RAM returns back to the host for reuse.&#160; How about this now:<\/p>\n<ul>\n<li>The VM is configured with 1 GB RAM Startup RAM and 8 GM Maximum RAM<\/li>\n<li>Minimum RAM is set to 256 MB<\/li>\n<li>The VM powers up with 1 GB RAM, goes idle and balloons down to 320 MB RAM<\/li>\n<li>After a week, the customer logs into the VM, attempts to install SQL Server.&#160; The RAM high-water mark is 1 GB and the SQL setup has no problems.<\/li>\n<\/ul>\n<p>No helldesk calls there!&#160; And it\u2019s done without the loss of performance associate with RAM over-commitment and second level paging.<\/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:37354489-f28b-47ed-8c45-54a3633e77d5\" class=\"wlWriterEditableSmartContent\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/Virtualisation\" rel=\"tag\">Virtualisation<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Hyper-V\" rel=\"tag\">Hyper-V<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Cloud\" rel=\"tag\">Cloud<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Windows+Server+2008+R2\" rel=\"tag\">Windows Server 2008 R2<\/a>,<a href=\"http:\/\/technorati.com\/tags\/Windows+Server+2012\" rel=\"tag\">Windows Server 2012<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019ve been doing some thinking about how to configure Dynamic Memory (DM) in a Windows Server 2012 Hyper-V cloud.&#160; One of the traits of a cloud is self-service.&#160; And that\u2019s why some thought is required. If you\u2019re not familiar with Dynamic Memory, then have a look at the paper I wrote on the feature as &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=13594\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Thinking About Cloud, Self-Service, and Hyper-V Dynamic Memory&#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":[172,181,195,117,118],"class_list":["post-13594","post","type-post","status-publish","format-standard","hentry","category-hyper-v","tag-cloud","tag-hyper-v","tag-virtualisation","tag-windows-server-2008-r2","tag-windows-server-2012"],"aioseo_notices":[],"jetpack_featured_media_url":"","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/13594","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=13594"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/13594\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}