<?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: Optimizing Memory Utilization</title>
	<atom:link href="http://vpivot.com/2010/01/06/optimizing-memory-utilization/feed/" rel="self" type="application/rss+xml" />
	<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/</link>
	<description>Scott Drummonds on Virtualization</description>
	<lastBuildDate>Thu, 02 Feb 2012 12:54:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: drummonds</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-5250</link>
		<dc:creator>drummonds</dc:creator>
		<pubDate>Sat, 30 Apr 2011 02:10:01 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-5250</guid>
		<description>Mark,

It does not make a difference.  You have reasoned correctly.

Scott</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>It does not make a difference.  You have reasoned correctly.</p>
<p>Scott</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mark</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-5248</link>
		<dc:creator>mark</dc:creator>
		<pubDate>Fri, 29 Apr 2011 22:02:44 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-5248</guid>
		<description>Hi Scott,

Thanks for your response.

According to the vSphere Resource Management Guide (vsp_41_resource_mgmt.pdf) page 107, the maximum amount of memory reclaimed by the balloon driver is 65% of the total memory allocated to a VM.

If I have a 4 GB VM, and I calculate OS, JVM + Heap = 1GB, which is 25% of total allocated, I know the balloon driver won&#039;t hit at least 35% of my memory.

Therefore, in situations where OS, JVM + Heap is less than 35% of total allocated VM memory, does it actually make any difference setting a reservation on that VM?

Regards
mark</description>
		<content:encoded><![CDATA[<p>Hi Scott,</p>
<p>Thanks for your response.</p>
<p>According to the vSphere Resource Management Guide (vsp_41_resource_mgmt.pdf) page 107, the maximum amount of memory reclaimed by the balloon driver is 65% of the total memory allocated to a VM.</p>
<p>If I have a 4 GB VM, and I calculate OS, JVM + Heap = 1GB, which is 25% of total allocated, I know the balloon driver won&#8217;t hit at least 35% of my memory.</p>
<p>Therefore, in situations where OS, JVM + Heap is less than 35% of total allocated VM memory, does it actually make any difference setting a reservation on that VM?</p>
<p>Regards<br />
mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: drummonds</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-5155</link>
		<dc:creator>drummonds</dc:creator>
		<pubDate>Sat, 23 Apr 2011 01:11:08 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-5155</guid>
		<description>Mark,

The guest will avoid swapping memory that is in use.  The Java memory space is generally being used in its entirety because garbage collection will be sweeping the entire heap regularly.   So, setting reservations to account for everything actively in use (including the entire heap) protect enough memory for the guest processes to run without being paged out by the guest OS.

With respect to comment [2], this is not an exact science.  But we can reasonably trust any guest&#039;s memory management will page out less active processes over more active ones.  But it is true that if the active memory spiked above the un-ballooned memory then the guest will have to swap.  It is just as likely to swap Java memory as anything else so at this point performance will probably suffer.

Scott</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>The guest will avoid swapping memory that is in use.  The Java memory space is generally being used in its entirety because garbage collection will be sweeping the entire heap regularly.   So, setting reservations to account for everything actively in use (including the entire heap) protect enough memory for the guest processes to run without being paged out by the guest OS.</p>
<p>With respect to comment [2], this is not an exact science.  But we can reasonably trust any guest&#8217;s memory management will page out less active processes over more active ones.  But it is true that if the active memory spiked above the un-ballooned memory then the guest will have to swap.  It is just as likely to swap Java memory as anything else so at this point performance will probably suffer.</p>
<p>Scott</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mark</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-5154</link>
		<dc:creator>mark</dc:creator>
		<pubDate>Fri, 22 Apr 2011 21:25:48 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-5154</guid>
		<description>Hi Scott,

Thanks for your response.

I&#039;m still not clear on the mechanics of why setting a memory reservation for Java workloads is beneficial?

I am thinking the following concepts:

[1]
Because there is a memory reservation, there is less memory available for the balloon driver to inflate into, thus reducing the possibility of swapping to disk key areas of JRE memory.

[2]
If the Guest OS can&#039;t &quot;see&quot; inside the JRE memory, how is it actually going to &quot;do the right thing&quot; and swap out the most active processes?  Are we in fact just rolling the dice here and hoping the Guest OS won&#039;t swap out key JRE memory or is there more science than that?

Would really appreciate it if you could break this down to the next level of detail, as I&#039;m still confused.

Regards,
mark</description>
		<content:encoded><![CDATA[<p>Hi Scott,</p>
<p>Thanks for your response.</p>
<p>I&#8217;m still not clear on the mechanics of why setting a memory reservation for Java workloads is beneficial?</p>
<p>I am thinking the following concepts:</p>
<p>[1]<br />
Because there is a memory reservation, there is less memory available for the balloon driver to inflate into, thus reducing the possibility of swapping to disk key areas of JRE memory.</p>
<p>[2]<br />
If the Guest OS can&#8217;t &#8220;see&#8221; inside the JRE memory, how is it actually going to &#8220;do the right thing&#8221; and swap out the most active processes?  Are we in fact just rolling the dice here and hoping the Guest OS won&#8217;t swap out key JRE memory or is there more science than that?</p>
<p>Would really appreciate it if you could break this down to the next level of detail, as I&#8217;m still confused.</p>
<p>Regards,<br />
mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: drummonds</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-5115</link>
		<dc:creator>drummonds</dc:creator>
		<pubDate>Sun, 17 Apr 2011 12:13:21 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-5115</guid>
		<description>Mark,

[1] Anything that runs an interpreter/simulator like Java in the guest OS could cause the same problem.  I am defining interpreter/simulator here as something that manages its threads&#039; memory inside the process.  I am aware of no other applications except Java that behave this way, although I would expect the same out of .NET.

[2] You cannot tell what ends up in the reserved memory.  But it does not matter where the memory is until the ballon driver starts to inflate.  At that time it will start to take memory from the guest OS, forcing it to page out low-priority processes.  Usually it will do the right thing and choose the most active process(es).

Scott</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>[1] Anything that runs an interpreter/simulator like Java in the guest OS could cause the same problem.  I am defining interpreter/simulator here as something that manages its threads&#8217; memory inside the process.  I am aware of no other applications except Java that behave this way, although I would expect the same out of .NET.</p>
<p>[2] You cannot tell what ends up in the reserved memory.  But it does not matter where the memory is until the ballon driver starts to inflate.  At that time it will start to take memory from the guest OS, forcing it to page out low-priority processes.  Usually it will do the right thing and choose the most active process(es).</p>
<p>Scott</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mark</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-5114</link>
		<dc:creator>mark</dc:creator>
		<pubDate>Sun, 17 Apr 2011 09:05:31 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-5114</guid>
		<description>Hi Scott,

You posted this message a while ago over on vmware:

http://communities.vmware.com/blogs/drummonds/2009/09/09/love-your-balloon-driver

Couple of questions

[1]

You mentioned because Java has its own memory management it is wise to set a reservation for Java.

Are there ANY OTHER enteprise applications/situations where the VM&#039;s OS can not &quot;see&quot; what is going on inside its own memory, as in the case with Java?  Or is it just Java that causes this issue?

[2]

For Java, you mention it is wise to set a reservation to account for the JVM,OS, and heap.  Say I have a 4GB VM, and I calculate JVM+OS+Heap = 1GB, and I set a reservation for 1GB.

Because the JVM/OS/Heap will load first, does that mean that those components will end up &quot;landing&quot; inside that 1GB i&#039;ve reserved?  And thus, if balloon driver DOES inflate, at least it won&#039;t swap out fundamental JVM/heap components?  Is this reason for recommending to set the mem. reservation for java?

Or another way of putting it, what ends up sitting in that 1GB that i&#039;ve reserved?.. and can this change during the lifetime of a VM?  How do I ensure that the JVM/OS is what ends up in the 1GB i&#039;ve reserved, as is the intention?

Regards
mark</description>
		<content:encoded><![CDATA[<p>Hi Scott,</p>
<p>You posted this message a while ago over on vmware:</p>
<p><a href="http://communities.vmware.com/blogs/drummonds/2009/09/09/love-your-balloon-driver" rel="nofollow">http://communities.vmware.com/blogs/drummonds/2009/09/09/love-your-balloon-driver</a></p>
<p>Couple of questions</p>
<p>[1]</p>
<p>You mentioned because Java has its own memory management it is wise to set a reservation for Java.</p>
<p>Are there ANY OTHER enteprise applications/situations where the VM&#8217;s OS can not &#8220;see&#8221; what is going on inside its own memory, as in the case with Java?  Or is it just Java that causes this issue?</p>
<p>[2]</p>
<p>For Java, you mention it is wise to set a reservation to account for the JVM,OS, and heap.  Say I have a 4GB VM, and I calculate JVM+OS+Heap = 1GB, and I set a reservation for 1GB.</p>
<p>Because the JVM/OS/Heap will load first, does that mean that those components will end up &#8220;landing&#8221; inside that 1GB i&#8217;ve reserved?  And thus, if balloon driver DOES inflate, at least it won&#8217;t swap out fundamental JVM/heap components?  Is this reason for recommending to set the mem. reservation for java?</p>
<p>Or another way of putting it, what ends up sitting in that 1GB that i&#8217;ve reserved?.. and can this change during the lifetime of a VM?  How do I ensure that the JVM/OS is what ends up in the 1GB i&#8217;ve reserved, as is the intention?</p>
<p>Regards<br />
mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Active memory and configured memory &#171; Designing vSphere</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-510</link>
		<dc:creator>Active memory and configured memory &#171; Designing vSphere</dc:creator>
		<pubDate>Tue, 09 Mar 2010 16:33:41 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-510</guid>
		<description>[...] &#160; Why is it important to track active memory –check this post [...]</description>
		<content:encoded><![CDATA[<p>[...] &#160; Why is it important to track active memory –check this post [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Truth About Hyper-V Memory Overcommit : BizzRoot &#8211; Splash News</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-509</link>
		<dc:creator>The Truth About Hyper-V Memory Overcommit : BizzRoot &#8211; Splash News</dc:creator>
		<pubDate>Fri, 29 Jan 2010 19:30:12 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-509</guid>
		<description>[...] The Cost Per Application Calculator makes it clear that investing in VMware vSphere 4 significantly reduces your datacenter hardware footprint and associated costs.  Scott Drummonds, the VMware performance expert, recently explained how memory overcommit is the only way to effectively use all of the physical RAM in a hypervisor. [...]</description>
		<content:encoded><![CDATA[<p>[...] The Cost Per Application Calculator makes it clear that investing in VMware vSphere 4 significantly reduces your datacenter hardware footprint and associated costs.  Scott Drummonds, the VMware performance expert, recently explained how memory overcommit is the only way to effectively use all of the physical RAM in a hypervisor. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Microsoft failed to implement memory overcommit in Hyper-V R2 &#124; VCritical</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-508</link>
		<dc:creator>Microsoft failed to implement memory overcommit in Hyper-V R2 &#124; VCritical</dc:creator>
		<pubDate>Wed, 13 Jan 2010 13:21:21 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-508</guid>
		<description>[...] The Cost Per Application Calculator makes it clear that investing in VMware vSphere 4 significantly reduces your datacenter hardware footprint and associated costs.  Scott Drummonds, the VMware performance expert, recently explained how memory overcommit is the only way to effectively use all of the physical RAM in a hypervisor. [...]</description>
		<content:encoded><![CDATA[<p>[...] The Cost Per Application Calculator makes it clear that investing in VMware vSphere 4 significantly reduces your datacenter hardware footprint and associated costs.  Scott Drummonds, the VMware performance expert, recently explained how memory overcommit is the only way to effectively use all of the physical RAM in a hypervisor. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://vpivot.com/2010/01/06/optimizing-memory-utilization/comment-page-1/#comment-507</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Mon, 11 Jan 2010 17:11:49 +0000</pubDate>
		<guid isPermaLink="false">http://vpivot.com/?p=198#comment-507</guid>
		<description>There is no number that is &quot;true in all cases&quot;.  As I say in the article, &quot;A virtual machine’s active memory is dictated by the application and its usage&quot;.  So, the active memory will change from VM to VM, from system to system and DC to DC.  25% is an arbitrary selection, probably near average.

Scott</description>
		<content:encoded><![CDATA[<p>There is no number that is &#8220;true in all cases&#8221;.  As I say in the article, &#8220;A virtual machine’s active memory is dictated by the application and its usage&#8221;.  So, the active memory will change from VM to VM, from system to system and DC to DC.  25% is an arbitrary selection, probably near average.</p>
<p>Scott</p>
]]></content:encoded>
	</item>
</channel>
</rss>

