Sunday, February 26, 2012

How does Citrix XenDesktop 5.5 Power Management for statically assigned desktop pools work?

Those who come from a VMware View 4 or 5 background may immediately notice or find how confusing Citrix’s XenDesktop’s power management scheme can be but in reality, Citrix just chose a different approach to allowing administrators to control when and how many desktops they want powered up.

The way that Citrix allows administrators to management the state of pools containing statically assigned desktops is through the following:

  • OffPeakBufferSizePercent
  • OffPeakDisconnectAction
  • OffPeakDisconnectTimeout
  • OffPeakExtendedDisconnectAction
  • OffPeakExtendedDisconnectTimeout
  • OffPeakLogOffAction
  • OffPeakLogOffTimeout
  • PeakBufferSizePercent
  • PeakDisconnectionAction
  • PeakDisconnectTimeout
  • PeakExtendedDisconnectAction
  • PeakExtendedDisconnectTimeout
  • PeakLogoffAction
  • PeakLogOffTimeout

For detailed information about these parameters, refer to the following link which contains the description for them:

http://support.citrix.com/static/kc/CTX127254/help/Set-BrokerDesktopGroup.htm

Within Desktop Studio, you can find the power management properties by editing the respective desktop group.  Here’s a screenshot of the Power Management options for a statically assigned pool:

image

… and here’s a screenshot of the Power Management options for a randomly assigned pool:

image

The way that XenDesktop handles how many desktops are powered on for a statically assigned pool is based on values for the PeakBufferSizePercent, PeakHours and DaysOfWeek.  Assuming that you have your PeakBufferSizePercent set to 100%, your PeakHours set to all hours and DaysOfWeek set to Weekdays, your desktops will be powered on throughout the day.

What I find most administrators ask are the following questions:

  1. How can I keep all of my desktops powered on during office hours?
  2. How can I set a specific amount of desktops the XenDesktop DDC should have powered on?
  3. How can I turn power management off completely?

Let’s answer these questions now:

How can I keep all of my desktops powered on during office hours?

The 2 variables that need to be set for you to have all of your desktops powered on during office hours are the following:

  • PeakBufferSizePercent
  • PeakHours

PeakBufferSizePercent is set with the PowerShell cmdlet: Set-BrokerDesktopGroup and PeakHours is set with the GUI:

image

… or the cmdlet: Set-BrokerPowerTimeScheme.

So if you want your desktops to be powered on between 6:00a.m. and 9:00p.m., highlight the appropriate hours in green as shown in the screenshot above and use the Set-BrokerDesktopGroup to set the PeakBufferSizePercent value to 100.  Here’s what the cmdlet would like like:

Set-BrokerDesktopGroup "Desktop Group Name" -PeakBufferSizePercent 100

How can I set a specific amount of desktops the XenDesktop DDC should have powered on?

This feature is actually only available for randomly assigned pools.  See one of my previous posts on this:

Where is the “Machines to be powered on” option in Citrix XenDesktop 5.5’s “Edit Desktop Group” menu?
http://terenceluk.blogspot.com/2012/02/where-is-machines-to-be-powered-on.html

How can I turn power management off completely?

You can execute the follow cmdlet to turn off power management for a specific group:

Set-BrokerDesktopGroup “Desktop Group name” -AutomaticPowerOnForAssigned $false

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

To end this blog post, I’d like to list the commands I use quite a bit during deployments:

Set the PeakBufferSizePercent value of a desktop catalog named “Windows 7 64-bit External Random to 100%:
Set-BrokerDesktopGroup "Windows 7 64-bit External Random" -PeakBufferSizePercent 100

Set the PeakBufferSizePercent value of all desktop catalogs to 100 percent:
Get-BrokerDesktopGroup | Set-BrokerDesktopGroup -PeakBufferSizePercent 100

Set the PeakBufferSizePercent value of all desktop catalogs that begin with “Windows” + <anything in between> + 7 + <anything after> to 100 percent:
Get-BrokerDesktopGroup -Name Windows*7* | Set-BrokerDesktopGroup -PeakBufferSizePercent 100

No comments: