Hidden Gem in View 6.1 and Transparent Page Sharing

By | March 21, 2015

I’ve just updated my lab to View 6.1 and came across a nice little gem. This is related to the recent out-of-the-box hardening of vSphere where Transparent Page Sharing is disabled between virtual machines. In case you missed it, I’ve written about it here.

If you see the screenshot below, you will see a new setting in the Advanced Storage group of settings called Transparent Page Sharing Scope. As you may guess, this allows us to configure some level of TPS between virtual desktops. As you can see from the screenshot, there are 4 scopes to choose from and I will explain what each one does. It’s pretty straightforward actually. What is important to note is that this is done at the individual pool level.

View61_Pool_TPS

  • Virtual Machine – Desktops in this pool will not participate in Inter-VM TPS; they will only experience savings within it’s own memory space.
  • Desktop Pool – Desktops in this pool will participate in Inter-VM TPS with all desktops in the same pool.
  • Pod – Desktops in this pool will participate in Inter-VM TPS with other desktops in pools belonging to the same View Pod,  and also have this setting configured as Pod.
  • Global – Desktops in this pool will participate in Inter-VM TPS with other desktops, that can belong to other View Pods, which also have this setting configured as Global.

If you are familiar with the introduction of sched.mem.pshare.salt, every virtual machine will have this in the vmxadvanced settings. All VMs with the same salt value (& in the same ESXi host of course) will be able to share memory pages where possible. So what View does behinds the scenes is to set a common salt value for the virtual desktops within the same scope.

There is one situation which is not addressed by this setting, that is in some environments where non-View virtual machines and View virtual machines co-exist on the same ESXi host. (Not my preferred situation, but I shall leave that to another blog post.) In such a case if TPS is desired to be allowed between all VMs, the approach is to change the advance ESXi setting Mem.ShareForceSalting in every desired host to “0” (numeric zero).

[update-20150322] if your environment was upgraded from an earlier version of View, the TPS scope for every pool will be set to Virtual Machine by default.

10 thoughts on “Hidden Gem in View 6.1 and Transparent Page Sharing

  1. Ben

    So, do you still have to make the change in the host configuration with this setting?
    Is one option better than the other int the view configuration?

    Reply
    1. Jason Yeo Post author

      nope, you just need to make the change in View. Don’t need to touch the setting on ESXi.

      Reply
    2. Jason Yeo Post author

      no, you do not need to change the host configuration, we should expect this to be done by View. The choice of options depend on the level of paranoia on this. The more stringent control needed, the smaller the scope, and the lower level of memory savings. If it’s not a real concern, then go for the global option to allow maximum efficiency.

      Reply
  2. Jason Mathew

    My current ESX hosts are at Version 5.5 and the Value for “Mem.ShareForceSalting” is set for 2 . Can I leave the setting as is on the hosts and change the View pool settings for TPS for “Pool”. I am running View version 6.2.3

    Reply
    1. admin

      Yes, that should be the way. I don’t expect you to need to change anything on ESXi directly. Just do it via View.

      Reply
  3. DK

    I realize this is an old thread, but I have come across a requirement in my organization to disable TPS entirely. There doesn’t appear to be an option for that. If you’re still around, have you heard any alternatives?

    Reply
    1. admin

      Apologies on the tardy reply DK. Are you talking about disabling TPS via View or just with ESXi? I believe the default is that it’s already disabled. What are you seeing that’s suggesting otherwise?

      Reply

Leave a Reply

Your email address will not be published.