<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hypervisor.fr &#187; memory overcommit</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=memory-overcommit" rel="self" type="application/rss+xml" />
	<link>http://www.hypervisor.fr</link>
	<description>French Bare-Metal weblog</description>
	<lastBuildDate>Wed, 26 Jun 2024 22:42:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The vMotion Tax</title>
		<link>http://www.hypervisor.fr/?p=4834</link>
		<comments>http://www.hypervisor.fr/?p=4834#comments</comments>
		<pubDate>Fri, 12 Jul 2013 06:44:30 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[memory overcommit]]></category>
		<category><![CDATA[overhead]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4834</guid>
		<description><![CDATA[Ce post aurait du voir le jour il y a longtemps déjà mais vous savez ce que c&#8217;est, la crise, le réchauffement climatique toussa&#8230; Bref, vous n’êtes pas sans savoir que VMware a considérablement réduit l&#8217;overhead des VM depuis la version 5.0 en partie grâce au vmx swap (et encore un peu plus avec la [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Ce post aurait du voir le jour il y a longtemps déjà mais vous savez ce que c&#8217;est, la crise, le réchauffement climatique toussa&#8230; Bref, vous n’êtes pas sans savoir que <strong>VMware a considérablement réduit <a href="http://pubs.vmware.com/vsphere-51/topic/com.vmware.vsphere.resmgmt.doc/GUID-B42C72C1-F8D5-40DC-93D1-FB31849B1114.html">l&#8217;overhead des VM</a> depuis la version 5.0</strong> en partie grâce au vmx swap (et encore un peu plus avec la 5.1 grâce au <a href="http://www.vmware.com/pdf/Perf_Best_Practices_vSphere5.1.pdf">system swap</a>) mais surtout en modifiant le comportement de la VMM selon le type de vMMU. En effet, après moult tests, nous nous sommes rendu compte qu&#8217;en swMMU l&#8217;overhead était comparable <a href="http://www.hypervisor.fr/?p=2817" target="_blank">à ce qu&#8217;il était en version 4.x</a> alors qu&#8217;en hwMMU l&#8217;overhead est environ 10x moindre.</p>
<p style="text-align: justify;">Vous allez me dire &#8220;on s&#8217;en fout bien du swMMU, c&#8217;est old school et on a plus de VM sous Windows 2000 !&#8221; et je suis bien d&#8217;accord avec vous mais <a href="http://www.yellow-bricks.com/2013/05/06/dynamic-versus-static-overhead-memory/" target="_blank">Duncan a récemment posté un billet très intéressant sur les notions de static et dynamic overhead</a> et en particulier sur la réservation de mémoire lors d&#8217;un vmotion.</p>
<blockquote><p>[...] the vMotion process aims to be conservative and uses static overhead memory instead of dynamic</p></blockquote>
<p style="text-align: justify;">Vous l&#8217;aurez compris, en swMMU c&#8217;est du static et en hwMMU c&#8217;est du dynamic mais pour certaines actions, les valeurs du static overhead font référence. Dans le cas d&#8217;une mise à jour d&#8217;un cluster un peu chargé cela peut avoir toute son importance compte tenu de l’écart de réservation être les deux techniques :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/OVHD/ovhd_swmmu_32gb.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/OVHD/ovhd_swmmu_32gb.png" alt="" width="461" height="289" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/OVHD/ovhd_hwmmu_32gb.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/OVHD/ovhd_hwmmu_32gb.png" alt="" width="461" height="289" /></a></p>
<p style="text-align: left;">Et pour ceux qui aiment se faire du mal, on a essayez avec 1TB de vRAM (merci l&#8217;overcommit) :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/OVHD/ovhd_swmmu_1011gb.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/OVHD/ovhd_swmmu_1011gb.png" alt="" width="461" height="289" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/OVHD/ovhd_hwmmu_1011gb.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/OVHD/ovhd_hwmmu_1011gb.png" alt="" width="461" height="289" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4834</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(I Can&#8217;t Get No) Overcommit</title>
		<link>http://www.hypervisor.fr/?p=4602</link>
		<comments>http://www.hypervisor.fr/?p=4602#comments</comments>
		<pubDate>Fri, 18 Jan 2013 15:58:21 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Bullshit]]></category>
		<category><![CDATA[memory overcommit]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4602</guid>
		<description><![CDATA[Bien dynamique la mémoire sur Hyper-V 3&#8230;

]]></description>
			<content:encoded><![CDATA[<p>Bien dynamique la mémoire sur Hyper-V 3&#8230;</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/hyper-v_no_overcommit.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/hyper-v_no_overcommit.png" alt="" width="503" height="378" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4602</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>TPS is not dead !</title>
		<link>http://www.hypervisor.fr/?p=4401</link>
		<comments>http://www.hypervisor.fr/?p=4401#comments</comments>
		<pubDate>Mon, 03 Dec 2012 16:11:21 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[dedup]]></category>
		<category><![CDATA[large pages]]></category>
		<category><![CDATA[memory overcommit]]></category>
		<category><![CDATA[TLB]]></category>
		<category><![CDATA[TPS]]></category>
		<category><![CDATA[vMMU]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4401</guid>
		<description><![CDATA[Depuis l&#8217;introduction sur le marché x86 des serveurs capables de &#8220;hardware-assisted memory virtualization&#8221;, la question de Transparent Page Sharing (TPS) vs large pages (ou huges pages) revient souvent dans les discussions en rapport avec l&#8217;overcommit mémoire. En effet, nous avons souvent abordé le sujet, TPS ne supporte pas (pour des raisons évidentes) les large pages :
ESX will [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Depuis l&#8217;introduction sur le marché x86 des serveurs capables de &#8220;hardware-assisted memory virtualization&#8221;, la question de <strong>Transparent Page Sharing</strong> (TPS) vs <strong>large pages</strong> (ou <a href="http://en.wikipedia.org/wiki/Page_(computer_memory)" target="_blank">huges pages</a>) revient souvent dans les discussions en rapport avec l&#8217;overcommit mémoire. En effet, <a href="http://www.hypervisor.fr/?tag=tps" target="_blank">nous avons souvent abordé le sujet</a>, <a href="http://kb.vmware.com/kb/1021095" target="_blank">TPS ne supporte pas (pour des raisons évidentes) les large pages</a> :</p>
<blockquote><p><strong>ESX <strong>will not share</strong> large physical pages</strong> because:</p>
<p>The probability of finding two large pages that are identical is very low.<br />
The overhead of performing a bit-by-bit comparison for a 2MB page is much higher than for a 4KB page.</p></blockquote>
<p style="text-align: center;"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/tps_theory.png" alt="" width="218" height="180" /></p>
<p>Paradoxalement, <a href="http://books.google.fr/books?id=_Y2WiG6WfGkC&amp;lpg=PA194&amp;ots=I3XGm9JUB1&amp;pg=PA194#v=onepage&amp;q&amp;f=false" target="_blank">c&#8217;est dans l’excellent Windows Internals que nous avons trouvé l&#8217;explication la plus synthétique à propos des large pages</a> :</p>
<blockquote>
<p style="text-align: justify;">The primary advantage of large pages is speed of address translation for references to other data within the large page. This advantage exists because <strong>the first reference to any byte within a large page will cause the hardware’s translation look-aside buffer </strong>(TLB, described in a later section)<strong> to have in its cache the information necessary to translate references to any other byte within the large page.</strong> If small pages are used, more TLB entries are needed for the same range of virtual addresses, thus increasing recycling of entries as new virtual addresses require translation. This, in turn, means having to go back to the page table structures when references are made to virtual addresses outside the scope of a small page whose translation has been cached. The TLB is a very small cache, and thus large pages make better use of this limited resource.</p>
</blockquote>
<p style="text-align: justify;">On comprend donc aisément que sur des systèmes avec de plus en plus de RAM, les accès au TLB puissent être coûteux en CPU sans l&#8217;utilisation des large pages. Par contre, lorsqu&#8217;il n&#8217;y a plus de pages de 2Mo disponibles et parce que les large pages ne peuvent pas être swappées, ESX &#8220;casse&#8221; les large pages en small pages (dont le hash a déjà été computé) et TPS déduplique le tout :</p>
<blockquote>
<p style="text-align: justify;">Since ESX will not swap out large pages, during host swapping, a large page will be broken into small pages. ESX tries to share those small pages using the pre-generated hashes before they are swapped out.</p>
</blockquote>
<p style="text-align: justify;">Sur un système raisonnablement overcommité et sans tuning spécifique, <strong>l&#8217;ESX risque de ne pas &#8220;casser&#8221; et dedupliquer les pages suffisamment rapidement pour répondre à la demande de mémoire, ce qui peut engendrer une dégradation de performance </strong>(ballooning/zipping/swapping). A l&#8217;inverse, si le coût CPU est acceptable, <strong>le même système tuné pour ne faire que</strong> (ou presque que) <strong>des small pages n&#8217;aura pas cette problématique</strong>.</p>
<p style="text-align: justify;">Ci dessous, la comparaison des stats mémoire d&#8217;un cluster (composé de serveurs à base d&#8217;Intel Nehalem) sans tuning spécifique et des stats de ce même cluster après avoir forcé l&#8217;utilisation des small pages sur les vm (workload comparable) :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_HWMMU_default.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_HWMMU_default.png" alt="" width="477" height="511" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_HWMMU_disable_mmu_largepages.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_HWMMU_disable_mmu_largepages.png" alt="" width="477" height="511" /></a></p>
<p style="text-align: justify;">La première chose qui frappe c&#8217;est le compteur &#8220;consumed&#8221; qui a diminué de moitié (le workload s&#8217;y prête bien dans ce cas puisqu&#8217;il s&#8217;agit d&#8217;une ferme de serveurs xenapp) grâce à TPS,  le compteur &#8220;shared&#8221; a en effet été multiplié par 10. Dans le cas présent, <strong>la consommation CPU a augmenté d&#8217;environ 15%</strong> lors du passage aux small pages.</p>
<p style="text-align: justify;">Voici la commande powershell qui a permis de désactiver les large pages sur les vm (vm reboot ou &#8220;<a href="http://www.hypervisor.fr/?p=3235" target="_blank">vmotion shake</a>&#8221; pour la prise en compte) :</p>
<pre class="brush: powershell; title: ; notranslate">Get-View -ViewType VirtualMachine|?{!$_.Config.Template -and $_.Runtime.ConnectionState -eq &quot;connected&quot;}|?{!($_.Config.ExtraConfig|?{$_.Key -eq &quot;monitor_control.disable_mmu_largepages&quot;}|?{$_.value -match &quot;true|1&quot;})}|%{$_.ReconfigVM((New-Object VMware.Vim.VirtualMachineConfigSpec -Property @{extraconfig=(New-Object Vmware.Vim.OptionValue -Property @{Key=&quot;monitor_control.disable_mmu_largepages&quot;;Value=&quot;1&quot;})}))}</pre>
<p>Il est également possible d&#8217;obtenir un résultat similaire en forçant la VMM a utiliser le mode mmu software :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_SWMMU.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_SWMMU.png" alt="" width="471" height="505" /></a></p>
<p style="text-align: justify;">C&#8217;est quasiment identique mais la grande classe c&#8217;est qu&#8217;en powershell on peut forcer le mode cpu auto et le mode mmu software de la VMM (impossible en GUI) :</p>
<pre class="brush: powershell; title: ; notranslate">Get-View -ViewType virtualmachine|?{!$_.Config.Template -and $_.Runtime.ConnectionState -eq &quot;connected&quot;}|?{!($_.Config.Flags.VirtualExecUsage -eq &quot;hvauto&quot; -and $_.Config.Flags.VirtualMmuUsage -eq &quot;off&quot;)}|%{($_.ReconfigVM_Task((New-Object VMware.Vim.VirtualMachineConfigSpec -Property @{flags=(New-Object VMware.Vim.VirtualMachineFlagInfo -property @{virtualExecUsage=&quot;hvauto&quot;;virtualMmuUsage=&quot;off&quot;})})))}</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/tps_mmu_lpages/vmm_hidden.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/vmm_hidden.png" alt="" width="420" height="372" /></a></p>
<p style="text-align: justify;">C&#8217;est beau mais pas vraiment pratique à maintenir à cause des erreurs possibles via la GUI. De plus, nous avons eu l&#8217;opportunité précieuse d&#8217;échanger avec un Senior Staff Engineer de chez VMware qui nous a laissé entendre que ce n&#8217;était pas la meilleure option :</p>
<blockquote>
<p style="text-align: justify;">The sw-mmu [...] has slightly higher overheads (for the shadow pagetables and related data structures) and this will reduce the total available memory for backing guest pages.</p>
</blockquote>
<p style="text-align: justify;">Dans notre grande quête d&#8217;overcommit, notre contact chez VMware nous a parlé d&#8217;un paramètre assez génial qui permet de changer la politique d&#8217;allocation agressive de large pages de la mmu (en anglais c&#8217;est plus facile à comprendre) :</p>
<blockquote>
<p style="text-align: justify;">The heuristic, when enabled, basically says that whenever possible when backing any part of a 2MB-region of guest memory, try to do so with a large 2MB page. This may involve remapping existing small 4KB pages into that new 2MB page. But it basically tries to aggressively back everything large</p>
</blockquote>
<p style="text-align: justify;">Ce qui explique pourquoi, par défaut, TPS n&#8217;a presque pas d&#8217;effet (<a href="http://www.yellow-bricks.com/2011/01/10/how-cool-is-tps/" target="_blank">sauf pour les zero</a>) même pour les guest qui ne &#8220;demandent&#8221; pas de large pages. La raison est bien liée aux performances :</p>
<blockquote>
<p style="text-align: left;">When overcommitment isn&#8217;t an issue, large pages really do help TLB-performance with hw-mmu on most workloads.</p>
</blockquote>
<p style="text-align: justify;">A l&#8217;inverse, si on passe le paramètre à 0 (sched.mem.alwaysTryLPageAlloc pour une vm ou LPage.LPageAlwaysTryForNPT pour un host) la mmu n’allouera une large page qu&#8217;à la demande du guest. <a href="http://pubs.vmware.com/vsphere-51/topic/com.vmware.vsphere.resmgmt.doc/GUID-D98E6EC9-3730-4BC0-A9FC-93B9079E1AEE.html" target="_blank">L&#8217;explication est d&#8217;ailleurs disponible au fin fond du documentation center de VMware</a> :</p>
<blockquote>
<p style="text-align: justify;">Try to allocate large pages for nested page tables (called &#8216;RVI&#8217; by AMD or &#8216;EPT&#8217; by Intel). If you enable this option, all guest memory is backed with large pages in machines that use nested page tables. If NPT is not available, only some portion of guest memory is backed with large pages.</p>
</blockquote>
<p style="text-align: justify;">Vous aurez compris où nous voulons en venir : trouver <strong>un bon équilibre entre le bénéfice en matière de performance des large pages (presque incontestable lorsque c&#8217;est le guest qui en fait la demande) et le bénéfice de TPS en matière de consolidation mémoire</strong>. Exemple sur notre fameux cluster :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_HWMMU_alwaysTryLPageAlloc.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/CHASSIS_04_HWMMU_alwaysTryLPageAlloc.png" alt="" width="469" height="506" /></a></p>
<p style="text-align: justify;">Si vous êtes attentif vous aurez remarqué qu&#8217;il n&#8217;y a que très peu de différence de consolidation avec les résultats en mode small pages forcées, c&#8217;était une feinte pour ceux du fond qui ne suivent pas&#8230; Dans ce cas c&#8217;est parfaitement normal car aucun des guestOS présent dans cet exemple n&#8217;utilise de large pages (windows 2003 32bit). Si les vm avaient été, par exemple, des windows 2008 R2, le niveau de consommation se serait situé quelque part entre le &#8220;full&#8221; large pages et le &#8220;full&#8221; small pages en fonction des applications et du comportement de l&#8217;OS. Nous ne manquerons pas de compléter ce post avec un exemple impliquant des guestOS et des applications exploitant les large pages.</p>
<p>Voici la commande powershell qui a permis de désactiver sched.mem.alwaysTryLPageAlloc sur les vm (vm reboot ou &#8220;<a href="http://www.hypervisor.fr/?p=3235" target="_blank">vmotion shake</a>&#8221; pour la prise en compte) :</p>
<pre class="brush: powershell; title: ; notranslate">Get-View -ViewType VirtualMachine|?{!$_.Config.Template -and $_.Runtime.ConnectionState -eq &quot;connected&quot;}|?{!($_.Config.ExtraConfig|?{$_.Key -eq &quot;sched.mem.alwaysTryLPageAlloc&quot;}|?{$_.value -match &quot;false|0&quot;})}|%{$_.ReconfigVM((New-Object VMware.Vim.VirtualMachineConfigSpec -Property @{extraconfig=(New-Object Vmware.Vim.OptionValue -Property @{Key=&quot;sched.mem.alwaysTryLPageAlloc&quot;;Value=&quot;0&quot;})}))}</pre>
<p style="text-align: left;">Pour afficher un tableau récapitulatif des infos qui nous intéressent :</p>
<pre class="brush: powershell; title: ; notranslate">Get-View -ViewType VirtualMachine|?{!$_.Config.Template -and $_.Runtime.ConnectionState -eq &quot;connected&quot;}|select @{n=&quot;VM&quot;;e={$_.Name}}, @{n=&quot;HV&quot;;e={$_.Config.Flags.VirtualExecUsage}}, @{n=&quot;HVMMU&quot;;e={$_.Config.Flags.VirtualMmuUsage}}, @{n=&quot;disable_mmu_largepages&quot;;e={($_.Config.ExtraConfig|?{$_.Key -eq &quot;monitor_control.disable_mmu_largepages&quot;}).value}}, @{n=&quot;alwaysTryLPageAlloc&quot;;e={($_.Config.ExtraConfig|?{$_.Key -eq &quot;sched.mem.alwaysTryLPageAlloc&quot;}).value}}, @{n=&quot;ESX&quot;;e={(Get-View -property Name $_.Runtime.Host).Name}}|sort hv,hvmmu,disable_mmu_largepages,alwaysTryLPageAlloc,ESX|ft -AutoSize</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/tps_mmu_lpages/vmm_mem_adv.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/vmm_mem_adv.png" alt="" width="424" height="191" /></a></p>
<p style="text-align: left;"><span style="text-align: justify;">Pour information, depuis ESXi 5.0, il existe une commande très utile pour monitorer l&#8217;utilisation des large pages (memstats -r lpage-stats -v) :</span></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/tps_mmu_lpages/memstats_lpage.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/tps_mmu_lpages/memstats_lpage.png" alt="" width="414" height="337" /></a></p>
<p style="text-align: justify;">En cas de vmotion, les pages de la &#8220;future&#8221; vm sont allouées au format 4k et reconverties par la suite :</p>
<blockquote>
<p style="text-align: justify;">The vmkernel allocates the memory for a VM during precopy using small pages. These are then converted to large as the VM begins to run but it is based on guest accesses. esx5.0 and esx5.1 each improved on the ability to recover the large mappings.</p>
</blockquote>
<p style="text-align: justify;">Et parce que nous sommes de grands fan de l&#8217;overcommit mémoire, voici notre <a href="http://upload.wikimedia.org/wikipedia/commons/5/5f/Rue_Boutebrie.jpg" target="_blank">poudre de perlimpinpin</a> à ajouter dans vos recettes de scripts de déploiements si vous voulez overcommiter bien comme il faut (nous déclinons toute implosion de votre infra&#8230;) :</p>
<pre class="brush: bash; title: ; notranslate">
vim-cmd hostsvc/advopt/update VMkernel.Boot.sharePerNode bool false
vim-cmd hostsvc/advopt/update Mem.ShareRateMax long 32768
vim-cmd hostsvc/advopt/update Mem.ShareScanTime long 10
vim-cmd hostsvc/advopt/update Mem.ShareScanGHz long 32
vim-cmd hostsvc/advopt/update Mem.IdleTax long 95
#vim-cmd hostsvc/advopt/update Mem.AllocGuestLargePage long 0
#vim-cmd hostsvc/advopt/update Mem.AllocGuestRemoteLargePage long 0
#vim-cmd hostsvc/advopt/update LPage.LPageAlwaysTryForNPT long 0
vim-cmd hostsvc/advopt/update Mem.MemZipMaxPct long 25
#vsish -e set /sched/freeMemoryState/minFreePct 3
</pre>
<p style="text-align: justify;">Nous finirons par <a href="http://files.hypervisor.fr/doc/virtualization_for_dummies.pdf#page=27" target="_blank">une petite citation pour ceux qui ne jurent que par les large pages</a> (qui a dit Hyper-V ?!) :</p>
<blockquote>
<p style="text-align: justify;">The performance increase is somewhat <strong>dependant upon the type of workload</strong> the virtual machine is executing; memory-intensive applications see more performance improvement than applications that are not heavily dependent on memory access.</p>
</blockquote>
<p style="text-align: justify;">Un grand merci à <a href="http://www.linkedin.com/pub/alex-garthwaite/14/899/745" target="_blank"><strong>Alex Garthwaite</strong></a> pour son aide à la rédaction de ce post et à la compréhension des mécanismes de gestion de la mémoire d&#8217;ESX.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4401</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>And the swap is smart again</title>
		<link>http://www.hypervisor.fr/?p=3869</link>
		<comments>http://www.hypervisor.fr/?p=3869#comments</comments>
		<pubDate>Tue, 01 May 2012 23:50:32 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Bullshit]]></category>
		<category><![CDATA[memory overcommit]]></category>
		<category><![CDATA[swapping]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=3869</guid>
		<description><![CDATA[Alors que nous effectuions des tests sur la beta de Windows 8 server server 2012, nous avons remarqué une option qui avait échappé à notre vigilance lors de la publication par Microsoft du &#8220;What&#8217;s new in hyper-V&#8221; (très troublant si on considère que le produit est toujours en beta mais c&#8217;est une technique bien rodée chez M$) : le Smart [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Alors que nous effectuions des tests sur la beta de Windows <span style="text-decoration: line-through;">8 server</span> server 2012, nous avons remarqué une option qui avait échappé à notre vigilance lors de la publication par Microsoft du &#8220;<a href="http://technet.microsoft.com/en-us/library/hh831410.aspx#BKMK_DM" target="_blank">What&#8217;s new in hyper-V</a>&#8221; (très troublant si on considère que le produit est toujours en beta <a href="http://www.vcritical.com/2012/04/microsoft-management-summit-2012-a-k-a-mms-2011-for-real-this-time/" target="_blank">mais c&#8217;est une technique bien rodée chez M$</a>) : le <strong>Smart Paging</strong></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/Hyper-V3_Smart_Paging.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/Hyper-V3_Smart_Paging.png" alt="" width="442" height="416" /></a></p>
<p style="text-align: justify;">En toute honnêteté, pendant 2 secondes nous avons pensé à une killer feature qui permettrait de placer automatiquement la swap du GuestOS sur un vdisk à part ou quelque chose d&#8217;encore plus ingénieux. On y croyait vraiment à mort tant la feature list d&#8217;Hyper-V 3 est impressionnante (pour un produit &#8220;gratuit&#8221;).</p>
<p style="text-align: justify;">Mais non, c&#8217;est juste le fichier de swap de la vm qui va avec une autre nouvelle fonction &#8220;minimum memory&#8221;. Je vous laisse apprécier le descriptif :</p>
<blockquote><p>Dynamic Memory improvements include support for configuring minimum memory, and Smart Paging, which is a memory management technique to provide a <strong>reliable restart experience</strong> for virtual machines configured with less minimum memory than startup memory.<br />
[...]<br />
Smart Paging uses <strong>disk resources</strong> as additional, temporary memory when more memory is required to restart a virtual machine than the amount of memory currently allocated to a virtual machine.</p></blockquote>
<p>Ça c&#8217;est du dépoussiérage de feature où on s&#8217;y connait pas ! Mais c&#8217;est pas fini, on vous a gardé le meilleur pour la fin :</p>
<blockquote><p>To minimize the potential performance impact of Smart Paging, HyperV uses it only when all of the following occurs:</p>
<p>1. <strong>The virtual machine is being restarted.</strong><br />
2. There is no available physical memory.<br />
3. No memory can be reclaimed from other virtual machines running on the host.</p></blockquote>
<p>Et on vous rafraîchi la mémoire sur ce <a href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=10&amp;ved=0CGYQFjAJ&amp;url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F2%2F8%2FC%2F28CE6B15-BB29-402B-8645-0706C0A518BF%2FVirt_WP_CostComparison_final.pdf&amp;ei=tnSgT8L9L6PP4QT1yJjpAg&amp;usg=AFQjCNFyZeYfnBzt229jizdEIgx6RLrjFw&amp;sig2=hX1kaIVgbztBKtxVOA466g" target="_blank">qu&#8217;M$ pensait de l&#8217;overcommit quand Hyper-V n&#8217;en était pas capable</a> :</p>
<blockquote><p>What this means is while Memory Overcommit has its uses in certain configurations, it’s not a panacea for virtualization administrators. Memory Overcommit should be used judiciously and only when absolutely necessary.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=3869</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[PSH] state memory counter : créez une vraie alarme d&#8217;overcommit pour ESX</title>
		<link>http://www.hypervisor.fr/?p=3845</link>
		<comments>http://www.hypervisor.fr/?p=3845#comments</comments>
		<pubDate>Fri, 20 Apr 2012 07:39:46 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[memory overcommit]]></category>
		<category><![CDATA[memory state]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=3845</guid>
		<description><![CDATA[L&#8217;un des compteurs les plus connus en matière d&#8217;overcommit sur ESX est le memory state. Pour ceux qui ne le connaissent pas, sachez qu&#8217;il permet de savoir rapidement dans quel état d&#8217;overcommitment (de 0 à 4, high&#62;soft&#62;hard&#62;low) se trouve votre ESX. A 0 tout va bien, au dessus ca commence à devenir short donc le [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">L&#8217;un des compteurs les plus connus en matière d&#8217;overcommit sur ESX est le <a href="http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.wssdk.apiref.doc_50/memory_counters.html" target="_blank"><strong>memory state</strong></a>. Pour ceux qui ne le connaissent pas, sachez qu&#8217;il permet de savoir rapidement dans quel état d&#8217;overcommitment (de 0 à 4, high&gt;soft&gt;hard&gt;low) se trouve votre ESX. A 0 tout va bien, au dessus ca commence à devenir short donc le vmkernel va chercher à récupérer de la ram avec les différents moyens qu&#8217;il à dispo (un petit tour sur <a href="http://kb.vmware.com/kb/2017642" target="_blank">le diagramme Memory Management and Monitoring diagram d&#8217;Hany Michael</a> tout juste mis à jour pour se rafraichir la mémoire -haha).</p>
<p style="text-align: justify;">Sachez aussi qu&#8217;historiquement statiques, <a href="http://frankdenneman.nl/2011/07/mem-minfreepct-sliding-scale-function/" target="_blank">les pourcentages équivalent aux différents states sont &#8220;dynamique&#8221; depuis ESX 5</a> et <a href="http://kb.vmware.com/kb/1033687" target="_blank">VMware recommande de tuner le paramètre minFreePct sur ESX 4.1 au dessus de 64Go de ram</a> (nous, on vous recommande 3% à partir de 32Go).</p>
<p style="text-align: justify;">Le compteur n&#8217;est pas accessible pour faire une alarme dans le vcenter donc nous avons fait chauffer le PowerCLI pour vous en faire une belle qui brille dans la nuit et qui vous alerte dès que le compteur passe à 1 (=1 : warning, &gt;1 : alert) :</p>
<pre class="brush: powershell; title: ; notranslate">(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;Host memory state&quot;;Description = &quot;Custom alarm to monitor Host memory state high-soft-hard-low&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.MetricAlarmExpression -Property @{Metric = (New-Object VMware.Vim.PerfMetricId -Property @{CounterId = ((Get-View (Get-View ServiceINstance).Content.PerfManager).PerfCounter|?{$_.groupinfo.key -match &quot;mem&quot;}|?{$_.nameinfo.key -match &quot;state&quot;}|?{$_.RollupType -match &quot;latest&quot;}).key;Instance = &quot;&quot;});Operator = &quot;isAbove&quot;;Yellow = &quot;1&quot;;YellowInterval = &quot;20&quot;;Red = &quot;2&quot;;RedInterval = &quot;20&quot;;Type = &quot;HostSystem&quot;}))});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmware.local&quot;;Subject = &quot;[vAlarm] {targetName} memory state is {newStatus}&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;green&quot;;FinalState = &quot;yellow&quot;;Repeats = $false});(New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;yellow&quot;;FinalState = &quot;red&quot;;Repeats = $true}))})});ActionFrequency = &quot;1800&quot;}))</pre>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/vAlarm_memory_state.png" alt="" width="387" height="64" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=3845</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[PSH] The big -overcommit- score</title>
		<link>http://www.hypervisor.fr/?p=3553</link>
		<comments>http://www.hypervisor.fr/?p=3553#comments</comments>
		<pubDate>Sun, 08 Jan 2012 14:46:55 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[memory overcommit]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=3553</guid>
		<description><![CDATA[En ces temps de crise financière, ça fait plaisir de pouvoir dire à votre DSI que vous faites des économies de RAM grâce à votre hyperviseur préféré (en plus des économies d&#8217;énergie). Pour savoir précisément combien, voici un petit one-liner (très rapide) qui vous donnera la différence entre la quantité de mémoire allouée aux VM démarrées de votre vCenter et la quantité [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">En ces temps de crise financière, ça fait plaisir de pouvoir dire à votre DSI que vous faites des économies de RAM grâce à votre hyperviseur préféré (<a href="http://www.hypervisor.fr/?p=3037" target="_blank">en plus des économies d&#8217;énergie</a>). Pour savoir précisément combien, voici un petit one-liner (très rapide) qui vous donnera la différence entre la quantité de mémoire allouée aux VM démarrées de votre vCenter et la quantité de mémoire <strong>physique</strong> (RAM uniquement) que ces VM occupent effectivement. Cette valeur représente donc la mémoire &#8220;récupérée&#8221; par les différents mécanismes d&#8217;ESX (TPS/zero, ballonning/idle tax, compression, swap) moins l&#8217;overhead des VM :</p>
<pre class="brush: powershell; title: ; notranslate">Get-View -ViewType VirtualMachine -Property Config,Summary,Runtime|?{$_.Runtime.PowerState -eq &quot;PoweredOn&quot; -and $_.Runtime.ConnectionState -eq &quot;connected&quot;}|%{$_.Config.Hardware.MemoryMB - $_.Summary.QuickStats.HostMemoryUsage}|Measure-Object -Sum -Minimum -Maximum -Average</pre>
<p>Sur une infra d&#8217;environ 1500 VM, ça donne environ 2,4To de RAM récupérée sur 4,5To. C&#8217;est assez énorme :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/overcommit.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/overcommit.png" alt="" width="521" height="200" /></a></p>
<p>Et chez vous ça fait combien ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=3553</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Super Size my VM</title>
		<link>http://www.hypervisor.fr/?p=2775</link>
		<comments>http://www.hypervisor.fr/?p=2775#comments</comments>
		<pubDate>Tue, 29 Mar 2011 01:32:40 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[ballooning]]></category>
		<category><![CDATA[memory overcommit]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=2775</guid>
		<description><![CDATA[ESX ignore totalement la nature et l&#8217;importance du contenu des pages de vos VM (il connait uniquement les statistiques d&#8217;utilisation), mais il peut faire appel au driver qui controle le ballooning &#8220;In-Guest&#8221; pour forcer le &#8220;Guest OS&#8221; à liberer des pages disponibles ou à deplacer des pages peut ou pas utilisées dans le swap du [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">ESX ignore <strong>totalement </strong>la nature et l&#8217;importance du contenu des pages de vos VM (il connait uniquement les statistiques d&#8217;utilisation), mais il peut faire appel au driver qui controle le ballooning &#8220;In-Guest&#8221; pour forcer le &#8220;Guest OS&#8221; à liberer des pages disponibles ou à deplacer des pages peut ou pas utilisées dans le swap du &#8220;Guest OS&#8221;. Cela fonctionne très bien <strong>seulement si la VM à le temps d&#8217;effectuer cette opération</strong>. Ainsi, lors d&#8217;une forte contention meme brève, ESX n&#8217;attendra pas que la VM &#8220;rende&#8221; des pages et commencera à compresser (si possible et uniquement à partir de la version 4.1) puis swapper <strong>aléatoirement </strong>des pages vers le fichier de swap de la VM (potentiellement catastrophique pour les performances) :</p>
<p style="text-align: center;"><a href="http://hypervisor.free.fr/img/memory_contention.png" title="memory_contention" rel="lightbox[2775]"><img class="aligncenter size-full wp-image-2801" title="memory_contention" src="http://www.hypervisor.fr/wp-content/uploads/2011/03/memory_contention.png" alt="" width="496" height="259" /></a><em><span style="font-size: x-small;">(1-contention rapide / 2-contention lente)</span></em></p>
<p style="text-align: justify;">De plus, comme indiqué dans le <a href="http://pubs.vmware.com/vsphere-esx-4-1/resmgmt/r_overhead_memory_on_virtual_machines.html" target="_blank">Resource Management Guide</a>, plus la VM est riche en vCPU et en vRAM, plus elle imposera un overhead important au VMkernel. Cet overhead est réservé et donc totalement &#8220;perdu&#8221;. Il ne sera pas non plus soumis aux differents mécanismes de récupération d&#8217;ESX (Transparent Page Sharing &gt; Memory Idle Tax/Ballooning &gt; Memory Compression &gt; Hypervisor Swapping).</p>
<p style="text-align: justify;">On ne parle que d&#8217;une centaine de Mo pour une VM avec 1 vCPU et 1Go de vRAM, mais un petit one-liner de PowerCLI nous permet de savoir de combien on parle pour une infra de plus de 1200 VM :</p>

<div class="wp_syntax"><div class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> Red <span style="color: #008080; font-style: italic;">-BackgroundColor</span> Yellow $<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#91;</span>math<span style="color: #000000;">&#93;</span>::round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>Get<span style="color: pink;">-</span>View <span style="color: pink;">-</span>ViewType virtualmachine <span style="color: #008080; font-style: italic;">-Property</span> Summary<span style="color: pink;">,</span>Runtime<span style="color: pink;">|?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.runtime.PowerState <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;poweredOn&quot;</span><span style="color: #000000;">&#125;</span><span style="color: pink;">|</span>select <span style="color: #008080; font-style: italic;">-ExpandProperty</span> Summary<span style="color: pink;">|</span>select <span style="color: #008080; font-style: italic;">-ExpandProperty</span> Runtime<span style="color: pink;">|</span>Measure<span style="color: pink;">-</span>Object <span style="color: #008080; font-style: italic;">-Sum</span> <span style="color: #008080; font-style: italic;">-Property</span> MemoryOverhead<span style="color: #000000;">&#41;</span>.sum<span style="color: pink;">/</span>1GB<span style="color: pink;">,</span><span style="color: #804000;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: pink;">/</span> $<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#91;</span>math<span style="color: #000000;">&#93;</span>::round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>Get<span style="color: pink;">-</span>View <span style="color: pink;">-</span>ViewType virtualmachine <span style="color: #008080; font-style: italic;">-Property</span> Summary<span style="color: pink;">,</span>Runtime<span style="color: pink;">|?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.runtime.PowerState <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;poweredOn&quot;</span><span style="color: #000000;">&#125;</span><span style="color: pink;">|</span>select <span style="color: #008080; font-style: italic;">-ExpandProperty</span> Summary<span style="color: pink;">|</span>select <span style="color: #008080; font-style: italic;">-ExpandProperty</span> Config<span style="color: pink;">|</span>Measure<span style="color: pink;">-</span>Object <span style="color: #008080; font-style: italic;">-Sum</span> <span style="color: #008080; font-style: italic;">-Property</span> MemorySizeMB<span style="color: #000000;">&#41;</span>.sum<span style="color: pink;">/</span>1KB<span style="color: pink;">,</span><span style="color: #804000;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span></pre></div></div>

<p><a href="http://hypervisor.free.fr/img/MemoryOverhead.png" title="MemoryOverhead" rel="lightbox[2775]"><img class="aligncenter size-full wp-image-2779" title="MemoryOverhead" src="http://www.hypervisor.fr/wp-content/uploads/2011/03/MemoryOverhead.png" alt="" width="517" height="179" /></a></p>
<p>Presque 220Go d&#8217;overhead sur environ 3,8To de vRAM attribué, soit près de 6% !</p>
<p style="text-align: justify;">Il est donc <strong>nettement plus judicieux de bien determiner la taille de vRAM nécéssaire au </strong>&#8220;<strong>Guest OS</strong>&#8220;<strong> et de tailler au plus juste</strong> plutot que mettre une valeur trop large au risque de voir la VM en souffrir plutot que d&#8217;en bénéficier (idem pour les vCPU d&#8217;ailleurs).</p>
<p>A lire tous les soirs après s&#8217;etre brossé les dents : <a href="http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf" target="_blank">Understanding Memory Resource Management in VMware ESX 4.1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=2775</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Hypervisor Wars : memory overcommit</title>
		<link>http://www.hypervisor.fr/?p=1845</link>
		<comments>http://www.hypervisor.fr/?p=1845#comments</comments>
		<pubDate>Fri, 19 Feb 2010 13:04:13 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Citrix XenServer]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[memory overcommit]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=1845</guid>
		<description><![CDATA[Alors que Microsoft continue à prétendre que le mécanisme de memory overcommit est dangereux pour votre production (mais, certainement comme pour Vmotion, lorsque cette fonction sera disponible sur Hyper-V, ce sera un gain pour la dynamicité du datacenter&#8230;), notre confrère CTXBLOG nous confirme que XenServer 6 sera capable de &#8220;Dynamic Memory Control &#38; Overcommit&#8221;. Virtualization.info [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Alors que Microsoft continue à prétendre que le mécanisme de memory overcommit est <a href="http://www.vcritical.com/2010/01/the-truth-about-hyper-v-memory-overcommit/" target="_blank">dangereux pour votre production</a> (mais, certainement comme pour Vmotion, lorsque cette fonction <a href="http://www.virtualization.info/2010/02/hyper-v-to-get-memory-overcommitment.html" target="_blank">sera disponible sur Hyper-V</a>, ce sera un gain pour <a href="http://www.hypervisor.fr/?p=1829" target="_blank">la dynamicité du datacenter</a>&#8230;), notre confrère CTXBLOG nous confirme que <a href="http://ctxblog.fr/index.php?post/2010/02/14/XenServer-6-%28CodeName-Midnight-Ride%29" target="_blank">XenServer 6 sera capable de &#8220;Dynamic Memory Control &amp; Overcommit&#8221;</a>. Virtualization.info <a href="http://www.virtualization.info/2010/02/red-hat-to-introduce-kvm-memory.html" target="_blank">rapporte que RedHat est également très actif sur le sujet</a>.</p>
<p style="text-align: justify;">VMware, soucieux de conserver son avance en la matière, <a href="http://www.yellow-bricks.com/2010/02/13/vmware-partner-exchange-2010/" target="_blank">ajoutera un nouveau mécanisme de memory overcommit dans sa future version : la &#8220;memory compression&#8221;</a>. Il s&#8217;agirait d&#8217;une compression dynamique de pages, ultime étape avant le swapping.</p>
<p>HyperviZor.com a d&#8217;ailleurs dédié un superbe diagrame à ce sujet :</p>
<p><a href="http://www.hypervizor.com/diags/HyperViZor-Diags-ESX-MEMGMT-v1.pdf.pdf"><img class="aligncenter size-full wp-image-1846" title="Memory Overcommitment" src="http://www.hypervisor.fr/wp-content/uploads/2010/02/hypervizor-mem-mgmt.jpg" alt="Memory Overcommitment" width="433" height="304" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=1845</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
