{"id":13214,"date":"2012-08-03T09:00:00","date_gmt":"2012-08-03T08:00:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=13214"},"modified":"2012-08-03T09:00:00","modified_gmt":"2012-08-03T08:00:00","slug":"ws2012-hyper-v-managing-virtual-cpu-performance","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=13214","title":{"rendered":"WS2012 Hyper-V \u2013 Managing Virtual CPU Performance"},"content":{"rendered":"<p><em>The <\/em><a href=\"http:\/\/download.microsoft.com\/download\/0\/0\/B\/00BE76AF-D340-4759-8ECD-C80BC53B6231\/performance-tuning-guidelines-windows-server-2012.docx\" target=\"_blank\"><em>Performance Tuning Guidelines for Windows Server 2012<\/em><\/a><em> document is available and I\u2019m reviewing and commenting on notable text in it.<\/em><\/p>\n<p>Microsoft makes a very interesting point.\u00a0 Just because you can allocate virtual CPUs (vCPUs) to a VM (up to 64 if your hardware is up to it), you shouldn\u2019t.<\/p>\n<blockquote><p>Virtual machines that have loads that are not CPU intensive should be configured to use one virtual processor. This is because of the additional overhead that is associated with multiple virtual processors, such as additional synchronization costs in the guest operating system.<\/p><\/blockquote>\n<p>Using up to date integration components improve CPU scalability.<\/p>\n<p>You can also improve the performance of your overall virtual machine estate by conserving CPU cycles.\u00a0 In other words, disable or tune down CPU utilising background activity and free up cycles for VMs that are engaged in providing services.\u00a0 Microsoft suggests:<\/p>\n<blockquote><p>\u00b7 Install the latest version of the virtual machine Integration Services.<\/p>\n<p>\u00b7 Remove the emulated network adapter through the virtual machine settings dialog box (use the Microsoft Hyper-V-specific adapter).<\/p>\n<p>\u00b7 Remove unused devices such as the CD-ROM and COM port, or disconnect their media.<\/p>\n<p>\u00b7 Keep the Windows guest on the sign-in screen when it is not being used.<\/p>\n<p>\u00b7 Use Windows Server 2012, Windows Server 2008 R2, or Windows Server 2008 for the guest operating system.<\/p>\n<p>\u00b7 Disable the screen saver.<\/p>\n<p>\u00b7 Disable, throttle, or stagger periodic activity such as backup and defragmentation.<\/p>\n<p>\u00b7 Review the scheduled tasks and services that are enabled by default.<\/p>\n<p>\u00b7 Improve server applications to reduce periodic activity (such as timers).<\/p>\n<p>\u00b7 Use the default Balanced power plan instead of the High Performance power plan.<\/p><\/blockquote>\n<p>Some of those tips will be pipe dreams in a true cloud. \u00a0For example, I&#8217;d never disable the virtual CD-ROM because that&#8217;s an endless run of help desk calls waiting to happen. Reviewing scheduled tasks in a true cloud is ambitious considering that the compute cluster admin has no idea what&#8217;s going on in the VMs. Disabling the screen saver &#8230; I like that one, but that&#8217;s going to be a fun conversation with IT security officers who are known for being aware of current technology &#8230; oh &#8230; \ud83d\ude1b<\/p>\n<p>For client guest OSs (VDI), they also suggest:<\/p>\n<blockquote><p>\u00b7 Disable background services such as SuperFetch and Windows Search.<\/p>\n<p>\u00b7 Disable scheduled tasks such as Scheduled Defrag.<\/p>\n<p>\u00b7 Disable Aero glass and other user interface effects (through the System application in Control Panel).<\/p><\/blockquote>\n<p>You can use weights and reserves to control how each vCPU in a VM uses physical logical processors, e.g. 100% reserve gives a vCPU 100% of a logical processor.\u00a0 A handy tip is to use this for certain CPU intensive workloads such as Exchange or SharePoint to guarantee a certain SLA for application performance.\u00a0 Microsoft says:<\/p>\n<blockquote><p>Highly intensive loads can benefit from adding more virtual processors instead, especially when they are close to saturating an entire core.<\/p><\/blockquote>\n<p>That makes sense.\u00a0 2 vCPUs is not the same as 2 physical CPUs.\u00a0 2 physical CPUs (2 * quad core) might be 8 logical processors.\u00a0 Therefore you might want to give the VM equivalent 8 vCPUs \u2013 if the ASSESSMENT (yes I\u2019m back on that again) says that it is required.<\/p>\n<div id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:162212d9-51ff-4616-9dd3-0fcc0a6fd4a7\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px; display: inline; float: none; padding: 0px;\">Technorati Tags: <a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Windows+Server+2012\">Windows Server 2012<\/a>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Hyper-V\">Hyper-V<\/a>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Virtualisation\">Virtualisation<\/a>,<a rel=\"tag\" href=\"http:\/\/technorati.com\/tags\/Performance\">Performance<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The Performance Tuning Guidelines for Windows Server 2012 document is available and I\u2019m reviewing and commenting on notable text in it. Microsoft makes a very interesting point.\u00a0 Just because you can allocate virtual CPUs (vCPUs) to a VM (up to 64 if your hardware is up to it), you shouldn\u2019t. Virtual machines that have loads &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=13214\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;WS2012 Hyper-V \u2013 Managing Virtual CPU Performance&#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,86,195,118],"class_list":["post-13214","post","type-post","status-publish","format-standard","hentry","category-hyper-v","tag-hyper-v","tag-performance","tag-virtualisation","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\/13214","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=13214"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/13214\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}