<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Deploying VMware in a Linux Shop #PO2575</title>
	<atom:link href="http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/feed/" rel="self" type="application/rss+xml" />
	<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/</link>
	<description>Go Green with Virtualization. Go UGLY Green with vmetc.com.</description>
	<lastBuildDate>Fri, 12 Mar 2010 17:09:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mike DiPetrillo</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1400</link>
		<dc:creator>Mike DiPetrillo</dc:creator>
		<pubDate>Sat, 18 Oct 2008 12:28:52 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1400</guid>
		<description>J, if you want you can email me off-line to figure out what&#039;s going on: http://www.mikedipetrillo.com/about.html. Where are you getting the values from? Virtual Center? esxtop?</description>
		<content:encoded><![CDATA[<p>J, if you want you can email me off-line to figure out what&#8217;s going on: <a href="http://www.mikedipetrillo.com/about.html" rel="nofollow">http://www.mikedipetrillo.com/about.html</a>. Where are you getting the values from? Virtual Center? esxtop?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1396</link>
		<dc:creator>J</dc:creator>
		<pubDate>Fri, 17 Oct 2008 15:13:47 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1396</guid>
		<description>Thanks Mike and Rich,vary very interesting. 
It was exactly what I was supposing. I&#039;m seeing 20% RDY (average) in my hosts (sometimes 45%...). Most of the VMs are configured with 2vCPU and are VMs with little load.
The extrange thing is that I&#039;m seeing 400 or 500 or 600 as values for the %WAIT parameter!!
Is it a bug? I&#039;ve to read this like 40 or 50 or 60% values? May be I &#039;ve to read the %TWAIT or %BWAIT calues insted the %WAIT value?
Or may be it&#039;s correct.
This seems to happen both in ESX 3.0.2 and ESX 3.5.

TIA,
J</description>
		<content:encoded><![CDATA[<p>Thanks Mike and Rich,vary very interesting.<br />
It was exactly what I was supposing. I&#8217;m seeing 20% RDY (average) in my hosts (sometimes 45%&#8230;). Most of the VMs are configured with 2vCPU and are VMs with little load.<br />
The extrange thing is that I&#8217;m seeing 400 or 500 or 600 as values for the %WAIT parameter!!<br />
Is it a bug? I&#8217;ve to read this like 40 or 50 or 60% values? May be I &#8216;ve to read the %TWAIT or %BWAIT calues insted the %WAIT value?<br />
Or may be it&#8217;s correct.<br />
This seems to happen both in ESX 3.0.2 and ESX 3.5.</p>
<p>TIA,<br />
J</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike DiPetrillo</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1395</link>
		<dc:creator>Mike DiPetrillo</dc:creator>
		<pubDate>Fri, 17 Oct 2008 12:18:45 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1395</guid>
		<description>Rich,

It does all come down to comfort level and number of VMs. Obviously if you have 40 VMs on a host and 50% of the time they&#039;re getting blocked from running you have a problem. Of course if those 40 VMs really weren&#039;t doing anything all the time (maybe you have 40 idle print servers or DHCP servers or something) then 50% ready really isn&#039;t a big deal. I too used to say anything over 5% ready is bad. I&#039;ve slowly increased it over time to the 50% threshold. Again, these are my recommendations - not VMware&#039;s. You&#039;ll have to find something that you&#039;re comfortable and as always LOOK and UNDERSTAND your applications. I&#039;ve seen too many customers that have no clue what they&#039;re app is doing or is supposed to be doing and then they want to start troubleshooting at the virtualization layer. Bad idea.</description>
		<content:encoded><![CDATA[<p>Rich,</p>
<p>It does all come down to comfort level and number of VMs. Obviously if you have 40 VMs on a host and 50% of the time they&#8217;re getting blocked from running you have a problem. Of course if those 40 VMs really weren&#8217;t doing anything all the time (maybe you have 40 idle print servers or DHCP servers or something) then 50% ready really isn&#8217;t a big deal. I too used to say anything over 5% ready is bad. I&#8217;ve slowly increased it over time to the 50% threshold. Again, these are my recommendations &#8211; not VMware&#8217;s. You&#8217;ll have to find something that you&#8217;re comfortable and as always LOOK and UNDERSTAND your applications. I&#8217;ve seen too many customers that have no clue what they&#8217;re app is doing or is supposed to be doing and then they want to start troubleshooting at the virtualization layer. Bad idea.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rich</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1394</link>
		<dc:creator>Rich</dc:creator>
		<pubDate>Fri, 17 Oct 2008 12:00:23 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1394</guid>
		<description>Interesting recommendation for %ready times. I&#039;ve always heard / read that double digit ready time was bad (so &gt;10%). As always, it&#039;s relative to the application on each VM and the user experience impact. More on this topic at http://communities.vmware.com/docs/DOC-7390.</description>
		<content:encoded><![CDATA[<p>Interesting recommendation for %ready times. I&#8217;ve always heard / read that double digit ready time was bad (so &gt;10%). As always, it&#8217;s relative to the application on each VM and the user experience impact. More on this topic at <a href="http://communities.vmware.com/docs/DOC-7390" rel="nofollow">http://communities.vmware.com/docs/DOC-7390</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike DiPetrillo</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1393</link>
		<dc:creator>Mike DiPetrillo</dc:creator>
		<pubDate>Fri, 17 Oct 2008 11:17:54 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1393</guid>
		<description>Good questions, J. vCPUs (virtual CPUs) get directly mapped and scheduled onto lCPUS (logical CPUs - aka cores or hyperthreads). Since you only have 1 vCPU in the guest you&#039;re only going to use 1 lCPU or core on the host. We don&#039;t split threads - no x86 virtualization solution does. If you had more guests then host utilization would increase. Of course if that same VM had 2 vCPUs then you would see 50% utilization on the host since you&#039;d be using 2 lCPUs at the time. Actually, you&#039;d see a little more than just 25% or 50% both times because you have the Service Console of ESX which gets scheduled on one of the cores (unless you&#039;re using ESXi), the vmkernel (the traffic cop) gets scheduled on one of the CPUs, and the invisible helper world (the I/O path) for that VM gets scheduled on a CPU. So in theory if you only had 1 VM running on the host and it had 1 vCPU then it would use 1 core, the vmkernel would use 1 core, the Service Console would use 1 core, and the helper world would use 1 core. All 4 cores would be getting exercised with just 1 VM running with just 1 vCPU. A lot of people don&#039;t realize this. This brings us to %RDY.

%RDY (READY spelled out) means the percentage of time that a VM is ready to run but can&#039;t run because it can&#039;t get onto a CPU. Basically the VM was next up in line to get scheduled but all of the lCPUs were busy. The higher the %RDY the more contention you have on the host. There are 2 things you could do to reduce %RDY:

1) Reduce the number of vCPUs in your guests.I see the case all the time where people create 2 vCPU guests by default whether the app needs it or not. This is because they had 2 CPU physical hosts so they&#039;re just following what they did in the physical world. The problem is 2 vCPU guests take up twice as many lCPUs when scheduled. The more lCPUs in use with more VMs means someone has to wait and %RDY goes up. This is just fine most of the time but I generally say if you see %RDY higher than 50% then you should look at your VMs and determine if they really need that other CPU. If you decide that you can knock down the vCPU count in a VM make sure to change the HAL in Windows or kernel in Linux to match the single CPU VM. Going from multi-proc HAL/kernel to single-proc HAL/kernel is easier (and supported) in the Linux world than the Windows world.

One clue that the VM doesn&#039;t really need the second vCPU is to look at %WAIT. If %WAIT is higher then 30% there&#039;s a good chance the second CPU is just sitting idle when the VM gets scheduled.

2) The other thing you can do is buy another physical host to increase the core count in your cluster.

NOTE: The recommended percentages I&#039;m giving you for %RDY and %WAIT are my personal recommendations just based on seeing this stuff for 6 1/2 years at various customers. You may feel comfortable with lower limits. I know of one customer that won&#039;t go over 30% for %RDY or 10% for %WAIT. I&#039;m just telling you what to look for. With some practice tuning in your environment with your workloads you&#039;ll be able to find out the exact threshold you need.

I hope this helps.</description>
		<content:encoded><![CDATA[<p>Good questions, J. vCPUs (virtual CPUs) get directly mapped and scheduled onto lCPUS (logical CPUs &#8211; aka cores or hyperthreads). Since you only have 1 vCPU in the guest you&#8217;re only going to use 1 lCPU or core on the host. We don&#8217;t split threads &#8211; no x86 virtualization solution does. If you had more guests then host utilization would increase. Of course if that same VM had 2 vCPUs then you would see 50% utilization on the host since you&#8217;d be using 2 lCPUs at the time. Actually, you&#8217;d see a little more than just 25% or 50% both times because you have the Service Console of ESX which gets scheduled on one of the cores (unless you&#8217;re using ESXi), the vmkernel (the traffic cop) gets scheduled on one of the CPUs, and the invisible helper world (the I/O path) for that VM gets scheduled on a CPU. So in theory if you only had 1 VM running on the host and it had 1 vCPU then it would use 1 core, the vmkernel would use 1 core, the Service Console would use 1 core, and the helper world would use 1 core. All 4 cores would be getting exercised with just 1 VM running with just 1 vCPU. A lot of people don&#8217;t realize this. This brings us to %RDY.</p>
<p>%RDY (READY spelled out) means the percentage of time that a VM is ready to run but can&#8217;t run because it can&#8217;t get onto a CPU. Basically the VM was next up in line to get scheduled but all of the lCPUs were busy. The higher the %RDY the more contention you have on the host. There are 2 things you could do to reduce %RDY:</p>
<p>1) Reduce the number of vCPUs in your guests.I see the case all the time where people create 2 vCPU guests by default whether the app needs it or not. This is because they had 2 CPU physical hosts so they&#8217;re just following what they did in the physical world. The problem is 2 vCPU guests take up twice as many lCPUs when scheduled. The more lCPUs in use with more VMs means someone has to wait and %RDY goes up. This is just fine most of the time but I generally say if you see %RDY higher than 50% then you should look at your VMs and determine if they really need that other CPU. If you decide that you can knock down the vCPU count in a VM make sure to change the HAL in Windows or kernel in Linux to match the single CPU VM. Going from multi-proc HAL/kernel to single-proc HAL/kernel is easier (and supported) in the Linux world than the Windows world.</p>
<p>One clue that the VM doesn&#8217;t really need the second vCPU is to look at %WAIT. If %WAIT is higher then 30% there&#8217;s a good chance the second CPU is just sitting idle when the VM gets scheduled.</p>
<p>2) The other thing you can do is buy another physical host to increase the core count in your cluster.</p>
<p>NOTE: The recommended percentages I&#8217;m giving you for %RDY and %WAIT are my personal recommendations just based on seeing this stuff for 6 1/2 years at various customers. You may feel comfortable with lower limits. I know of one customer that won&#8217;t go over 30% for %RDY or 10% for %WAIT. I&#8217;m just telling you what to look for. With some practice tuning in your environment with your workloads you&#8217;ll be able to find out the exact threshold you need.</p>
<p>I hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1392</link>
		<dc:creator>J</dc:creator>
		<pubDate>Fri, 17 Oct 2008 08:43:36 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1392</guid>
		<description>Mike, I agree with you in the 2nd issue, &quot;scaling out with multiple single CPU VMs allows for more flexible VM scheduling and also removes the overhead in a multi processor Guest OS and App stack&quot;. 
For examnple , if we have a host with two dual core processors,  one thing I observe (both in Windows and Linux) is that if I put a single vCPU in a VM the VM&#039;s performance increases. That&#039;s OK. In the performance tab in VIC, we can see the VM reaching nearly 100% of CPU utilization when we stress/test it. And it takes less time to do things cpu-intensive like compilations, etc..

But at the same time if we look at the performance tab of the HOST we can see that tfor a 100% of VM cpu utilization the host&#039;s graph only reaches 25%!!! 
That is because the VM is stressing only one core (2 processors * 2 cores = 4. So 1/4 = 25%) ?????

Can we achieve more utilization? 

PS1: I&#039;ve checked the affinity of the VM and It can be ran in all the cores.

PS2: It is true also that with 1vCPU, the %RDY parameter (esxtop) decreases wich is good. What is the good value for %RDY? Less than 5%?

Thanks for your time!
J</description>
		<content:encoded><![CDATA[<p>Mike, I agree with you in the 2nd issue, &#8220;scaling out with multiple single CPU VMs allows for more flexible VM scheduling and also removes the overhead in a multi processor Guest OS and App stack&#8221;.<br />
For examnple , if we have a host with two dual core processors,  one thing I observe (both in Windows and Linux) is that if I put a single vCPU in a VM the VM&#8217;s performance increases. That&#8217;s OK. In the performance tab in VIC, we can see the VM reaching nearly 100% of CPU utilization when we stress/test it. And it takes less time to do things cpu-intensive like compilations, etc..</p>
<p>But at the same time if we look at the performance tab of the HOST we can see that tfor a 100% of VM cpu utilization the host&#8217;s graph only reaches 25%!!!<br />
That is because the VM is stressing only one core (2 processors * 2 cores = 4. So 1/4 = 25%) ?????</p>
<p>Can we achieve more utilization? </p>
<p>PS1: I&#8217;ve checked the affinity of the VM and It can be ran in all the cores.</p>
<p>PS2: It is true also that with 1vCPU, the %RDY parameter (esxtop) decreases wich is good. What is the good value for %RDY? Less than 5%?</p>
<p>Thanks for your time!<br />
J</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rich</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1391</link>
		<dc:creator>Rich</dc:creator>
		<pubDate>Fri, 17 Oct 2008 04:15:37 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1391</guid>
		<description>Mike,

Thanks for the clarifications, and I changed your URL in the body of the post. Did it recently change?

Most importantly, thanks for the great VMworld presentation!</description>
		<content:encoded><![CDATA[<p>Mike,</p>
<p>Thanks for the clarifications, and I changed your URL in the body of the post. Did it recently change?</p>
<p>Most importantly, thanks for the great VMworld presentation!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike DiPetrillo</title>
		<link>http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/comment-page-1/#comment-1390</link>
		<dc:creator>Mike DiPetrillo</dc:creator>
		<pubDate>Fri, 17 Oct 2008 02:48:21 +0000</pubDate>
		<guid isPermaLink="false">http://vmetc.com/2008/09/19/deploying-vmware-in-a-linux-shop-po2575/#comment-1390</guid>
		<description>Just stumbling across the nice set of notes from my presentation at VMworld. It seems there&#039;s some confusion on a couple of points so let me clarify.

1) If you need more than 768 MB of RAM then go ahead and allocate it. Jason Willey&#039;s comment hit the nail on the head. What I meant to say was there are a lot of Linux VMs out there doing simple tasks that were given 1 GB of memory as a default install and they really don&#039;t need it. Once you break the 768 MB threshold in most Linux distros then you end up allocating another chunk of memory for file system cache. Staying under 768 MB if your VM doesn&#039;t need it prevents the extra memory usage for file system cache which means you can get more VMs on a host (generally memory is the limiting factor to VM density).

2) Nearly all apps out there will scale better when you stack multiple single CPU VMs on a host versus fewer multi CPU VMs - even apps like databases that like multiple CPUs. The reason is writing a true, preemptive multi-processing, multi-threaded application that behaves properly with the underlying operating system&#039;s scheduling is very difficult. Whenever you add more CPUs to the mix from a scheduling standpoint whether it be physical or virtual you add overhead since you must keep the multiple CPUs in sync. Scaling out with multiple single CPU VMs allows for more flexible VM scheduling and also removes the overhead in a multi processor Guest OS and App stack. Now, if you want to scale out with multi CPU VMs that&#039;s fine. I was simply making the point that VMs allow you to think differently and scale differently. Of course it&#039;s a though process that&#039;s uncomfortable for most.

3) I&#039;ll be posting the PXE booting of ESX soon.

4) The correct URL for my blog is http://www.mikedipetrillo.com.

5) Andy Leonard posted a great URL that I had forgotten to hand out before for time sync in guests. Make sure to check it out in the comments above.

I hope that clears some things up.</description>
		<content:encoded><![CDATA[<p>Just stumbling across the nice set of notes from my presentation at VMworld. It seems there&#8217;s some confusion on a couple of points so let me clarify.</p>
<p>1) If you need more than 768 MB of RAM then go ahead and allocate it. Jason Willey&#8217;s comment hit the nail on the head. What I meant to say was there are a lot of Linux VMs out there doing simple tasks that were given 1 GB of memory as a default install and they really don&#8217;t need it. Once you break the 768 MB threshold in most Linux distros then you end up allocating another chunk of memory for file system cache. Staying under 768 MB if your VM doesn&#8217;t need it prevents the extra memory usage for file system cache which means you can get more VMs on a host (generally memory is the limiting factor to VM density).</p>
<p>2) Nearly all apps out there will scale better when you stack multiple single CPU VMs on a host versus fewer multi CPU VMs &#8211; even apps like databases that like multiple CPUs. The reason is writing a true, preemptive multi-processing, multi-threaded application that behaves properly with the underlying operating system&#8217;s scheduling is very difficult. Whenever you add more CPUs to the mix from a scheduling standpoint whether it be physical or virtual you add overhead since you must keep the multiple CPUs in sync. Scaling out with multiple single CPU VMs allows for more flexible VM scheduling and also removes the overhead in a multi processor Guest OS and App stack. Now, if you want to scale out with multi CPU VMs that&#8217;s fine. I was simply making the point that VMs allow you to think differently and scale differently. Of course it&#8217;s a though process that&#8217;s uncomfortable for most.</p>
<p>3) I&#8217;ll be posting the PXE booting of ESX soon.</p>
<p>4) The correct URL for my blog is <a href="http://www.mikedipetrillo.com" rel="nofollow">http://www.mikedipetrillo.com</a>.</p>
<p>5) Andy Leonard posted a great URL that I had forgotten to hand out before for time sync in guests. Make sure to check it out in the comments above.</p>
<p>I hope that clears some things up.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
