{"id":1086,"date":"2019-08-13T10:22:59","date_gmt":"2019-08-13T17:22:59","guid":{"rendered":"https:\/\/portal.staylinked.com\/sl\/kb\/?post_type=ht_kb&#038;p=1086"},"modified":"2020-09-18T14:41:42","modified_gmt":"2020-09-18T21:41:42","slug":"tuning-virtualized-servers","status":"publish","type":"ht_kb","link":"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/","title":{"rendered":"Server Tuning Guide &#8211; Tuning Virtualized Servers"},"content":{"rendered":"\n<p>Proper availability of resources is critical to StayLinked Server performance. With the popularity of virtualization, server environments can be loaded on shared hardware, providing on-demand, dynamic, or limited resources to the server operating system. <\/p>\n\n\n\n<p><strong>Even with near-instant adjustments, dynamic resource allocation may not provide adequate service for some applications. For this reason, StayLinked Windows and Linux Server installations of v15.1 build 208 and newer utilize the OpenJ9 Java runtime which has proven more resilient to resource issues than can cause prior server builds issues in environments that are virtualized or underpowered.<\/strong><\/p>\n\n\n\n<p><strong>The following recommendations have proven effective for use with the pre-build 206 Server installation and Java runtime. It is important that you consult the provider of your virtualization software for their documentation and best practices that affect an enterprise-level just-in-time Java process like StayLinked.<\/strong><\/p>\n\n\n\n<p>In order to ensure stability of the Java Virtual Machine utilized by StayLinked we recommend configurations implemented similar to those described below. Please note that your virtualization product may have a different interface or version but should have similar configuration options available.<\/p>\n\n\n\n<p>The settings below are references from the <em>\u201cEnterprise Java Applications on WMWare Best\nPractices\u201d<\/em> Guide provided by VMware.<\/p>\n\n\n\n<p>In our lab, we used a vSphere interface for VMware ESXi version 5.5.0<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"396\" height=\"403\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1.jpg\" alt=\"\" class=\"wp-image-1087\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1.jpg 396w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1-295x300.jpg 295w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1-50x50.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1-60x60.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1-98x100.jpg 98w\" sizes=\"(max-width: 396px) 100vw, 396px\" \/><\/figure>\n\n\n\n<p><strong>Memory<\/strong> \u2013 Set a reservation for all memory (RAM) allocated to this VM. This memory should not be shared with other VMs. This adheres to VMware\u2019s recommendations for Setting memory reservations for virtual machine needs.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"701\" height=\"457\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-1.jpg\" alt=\"\" class=\"wp-image-1088\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-1.jpg 701w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-1-300x196.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-1-50x33.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-1-60x39.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-1-100x65.jpg 100w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><figcaption> <\/figcaption><\/figure>\n\n\n\n<p><em>(Best Practice No. 5 found on page 10 of Enterprise Java Applications on VMware Best Practices Guide in the below link) <\/em><\/p>\n\n\n\n<p><a href=\"https:\/\/www.vmware.com\/content\/dam\/digitalmarketing\/vmware\/en\/pdf\/techpaper\/enterprise-java-applications-on-vmware-best-practices-guide.pdf\">https:\/\/www.vmware.com\/content\/dam\/digitalmarketing\/vmware\/en\/pdf\/techpaper\/enterprise-java-applications-on-vmware-best-practices-guide.pdf<\/a><\/p>\n\n\n\n<p><strong>Time<\/strong> \u2013 Set the VMware ESXi host time to NTP under Configuration -&gt; Time Configuration.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"446\" height=\"395\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Time-Config-1.jpg\" alt=\"\" class=\"wp-image-1089\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Time-Config-1.jpg 446w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Time-Config-1-300x266.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Time-Config-1-50x44.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Time-Config-1-60x53.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Time-Config-1-100x89.jpg 100w\" sizes=\"(max-width: 446px) 100vw, 446px\" \/><\/figure>\n\n\n\n<p><strong>Clock<\/strong> \u2013 Configure the guest clock to synchronize with the host clock in support of Java Thread Scheduling.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"700\" height=\"534\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Sync-guest-time-with-host-1.jpg\" alt=\"\" class=\"wp-image-1090\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Sync-guest-time-with-host-1.jpg 700w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Sync-guest-time-with-host-1-300x229.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Sync-guest-time-with-host-1-50x38.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Sync-guest-time-with-host-1-60x46.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Sync-guest-time-with-host-1-100x76.jpg 100w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption>(Best Practice no. 7 found on page 12 of Enterprise Java Applications on VMware Best Practices Guide in the below link) <\/figcaption><\/figure>\n\n\n\n<p><a href=\"https:\/\/www.vmware.com\/content\/dam\/digitalmarketing\/vmware\/en\/pdf\/techpaper\/enterprise-java-applications-on-vmware-best-practices-guide.pdf\">https:\/\/www.vmware.com\/content\/dam\/digitalmarketing\/vmware\/en\/pdf\/techpaper\/enterprise-java-applications-on-vmware-best-practices-guide.pdf<\/a><\/p>\n\n\n\n<p><strong>CPU Cores<\/strong> \u2013 Allocate a minimum of physical cores as described in the Server Tuning Guide or as defined in the minimum system requirements for your server platform to ensure optimal garbage collection. Note that two dedicated CPU Cores is the minimum requirement for even small installations of StayLinked for proper JVM garbage collection. Larger installations may require additional dedicated cores.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"699\" height=\"372\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Number-of-Virtual-Sockets-1.jpg\" alt=\"\" class=\"wp-image-1091\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Number-of-Virtual-Sockets-1.jpg 699w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Number-of-Virtual-Sockets-1-300x160.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Number-of-Virtual-Sockets-1-50x27.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Number-of-Virtual-Sockets-1-60x32.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Number-of-Virtual-Sockets-1-100x53.jpg 100w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><\/figure>\n\n\n\n<p><strong>VM vCPU Overcommit<\/strong> \u2013 According\nto Best Practice number 2 on page 7 of the Enterprise Java Applications on VMware\nBest Practices Guide, it is important for performance-critical enterprise Java\napplications that the total number of vCPUs assigned to all of the virtual\nmachines does not cause greater than 80% CPU utilization on the ESX\/ESXi host.<\/p>\n\n\n\n<p><strong>Hyper Threading and CPU Allocation<\/strong> \u2013 Virtual Cores should not be shared with other VMs, setting\nthe Sharing mode to \u2018None\u2019 to disable hyper-threading.<\/p>\n\n\n\n<p>Using affinity settings, allocate contiguous cores to your VM. This allocates 4 hyper-threaded vCPUs to the 2 Cores selected above, but only 2 will be used if hyper-threading is disabled. Note that the first core starts at number 0 and not 1.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"700\" height=\"463\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Hyperthreaded-1.jpg\" alt=\"\" class=\"wp-image-1092\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Hyperthreaded-1.jpg 700w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Hyperthreaded-1-300x198.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Hyperthreaded-1-50x33.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Hyperthreaded-1-60x40.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Hyperthreaded-1-100x66.jpg 100w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p>For VMs running on a DRS cluster, Scheduling Affinity is not an option. DRS will, by default, distribute VMs to other resources if a particular ESXi has a high load.&nbsp; The latency caused by this feature can cause delays in resource allocation to StayLinked. Any VM running on a DRS cluster should have Latency Sensitivity set to a value of \u2018High\u2019 for the most reliable StayLinked performance.<\/p>\n\n\n\n<p>You can find this setting by going\nto <strong>VM \u2192&nbsp;Edit\nSettings \u2192&nbsp;VM Options \u2192 Advanced<\/strong><strong><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"938\" height=\"839\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VM-Options-1.jpg\" alt=\"\" class=\"wp-image-1093\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VM-Options-1.jpg 938w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VM-Options-1-300x268.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VM-Options-1-768x687.jpg 768w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VM-Options-1-50x45.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VM-Options-1-60x54.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VM-Options-1-100x89.jpg 100w\" sizes=\"(max-width: 938px) 100vw, 938px\" \/><\/figure>\n\n\n\n<p>The following VMware thread\ndiscusses this configuration in detail:<\/p>\n\n\n\n<p><a href=\"https:\/\/blogs.vmware.com\/performance\/2016\/11\/latency-sensitive-vms-and-drs.html\">https:\/\/blogs.vmware.com\/performance\/2016\/11\/latency-sensitive-vms-and-drs.html<\/a><\/p>\n\n\n\n<p><strong>CPU MHz<\/strong> \u2013 Finally, reserve all CPU MHz to this partition since CPU resources should not be shared with other VMs.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"701\" height=\"457\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-2.jpg\" alt=\"\" class=\"wp-image-1094\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-2.jpg 701w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-2-300x196.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-2-50x33.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-2-60x39.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Resource-Allocation-VM-2-100x65.jpg 100w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Proper availability of resources is critical to StayLinked Server performance. With the popularity of virtualization, server environments can be loaded on shared hardware, providing on-demand, dynamic, or limited resources to the server operating system. Even with near-instant adjustments, dynamic resource allocation may not provide adequate service for some applications. For&#8230;<\/p>\n","protected":false},"author":7,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":[],"ht-kb-category":[38],"ht-kb-tag":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Server Tuning Guide - Tuning Virtualized Servers &ndash; StayLinked<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.staylinked.com\/knowledge-base\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Server Tuning Guide - Tuning Virtualized Servers &ndash; StayLinked\" \/>\n<meta property=\"og:description\" content=\"Proper availability of resources is critical to StayLinked Server performance. With the popularity of virtualization, server environments can be loaded on shared hardware, providing on-demand, dynamic, or limited resources to the server operating system. Even with near-instant adjustments, dynamic resource allocation may not provide adequate service for some applications. For...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/\" \/>\n<meta property=\"og:site_name\" content=\"StayLinked\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-18T21:41:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/#website\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/\",\"name\":\"StayLinked Knowledge Base\",\"description\":\"Partner Portal Resources and Support\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/portal.staylinked.com\/sl\/kb\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1.jpg\",\"contentUrl\":\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/VMware-vSphere-1.jpg\",\"width\":396,\"height\":403},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/#webpage\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/\",\"name\":\"Server Tuning Guide - Tuning Virtualized Servers &ndash; StayLinked\",\"isPartOf\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/#primaryimage\"},\"datePublished\":\"2019-08-13T17:22:59+00:00\",\"dateModified\":\"2020-09-18T21:41:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/tuning-virtualized-servers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/portal.staylinked.com\/sl\/kb\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Server Tuning Guide &#8211; Tuning Virtualized Servers\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/1086"}],"collection":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/comments?post=1086"}],"version-history":[{"count":0,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/1086\/revisions"}],"wp:attachment":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/media?parent=1086"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=1086"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=1086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}