Update: 

The utility has been released to CDN. Here is the link

-–-

Hi my name is Ray Yang. I am a senior technical business development manager at Citrix. The new official Citrix blog site displays my name as Ruiguo Yang. But most people at Citrix refer me simply as Ray Yang. That was the name I used for the old community blog.

I haven’t posted anything new recently because I’ve been busy working on an exciting new project called “Citrix Power Smart”.

So what’s “Citrix Power Smart”?

Nowadays, server power consumption and associated cooling cost have been a hot issue. Many people in Citrix and Citrix customers are asking what Citrix can do to help addressing this issue.

During a discussion with some members of the CTO Office team, a small group of us conceived the idea of powering off idle presentation server during off peak hours.  Here is our thought process.

Just imagine you have 10 presentation servers.  During the business hours they are fully utilized. However at nights or on weekends hardly anyone connects to them. These servers however still consume power needlessly during such “off business hours”.  Simply powering off such servers during “off business hours” can save you up to 30-50% of your presentation server farm power consumption based on our rough estimate.  It sounds easy. But why haven’t we found many people doing so? Many of them do want to save money and are environmentally conscious. We think one of the reasons is that it has to be made easy and reliably before such practice is widely adopted. Can you imagine the following scene?

A presentation server administrator stays late every night.

Wait for the last person to log off.

Shut down each idle server.

Get up early to power on all servers before everyone else comes to work.

It’s a bit tough to do, isn’t it?

Well, such repetitive work is best left for computers. And they can be programmed to do it reliably!

In fact, we realized that the existing presentation server and the underling server platforms have the necessary ingredients already. The existing Presentation Server SDK provides the ability to see what user sessions are running on a given presentation server. There are existing standards such as IPMI and infrastructure such as Windows Remote Management available to power on/off servers reliably. What’s missing is a small piece of software to tie them together.

But wait a minute. What if some poor fellow do have to check emails or get some work done during the “off business hours”? You can leave some Presentation Servers running to serve them. However without additional work, the default Presentation Server load balancer will typically distribute the load evenly across all the servers preventing many servers to be shut down. To give you an example, say you have 10 servers in your farm. Each server is capable of supporting 50 concurrent user sessions.  Based on historical data, you expect at most 30 concurrent user sessions will be needed during “off business hours”. So I only need to keep one server running after business hour then. But wait. You have set up your presentation servers to balance user load evenly across your servers. These 30 user sessions will be spread across all 10 servers during “off business hours” preventing you from shutting them down. After all you don’t want to lose your job because you disconnect your CEO’s session when he is checking an important email at home.

So how can we improve our simple algorithm? Well, it turns out that Presentation Server has a “scheduling rule” for all the currently supported versions. You can define the time periods when certain servers are available. Perfect, we thought. If we add a simple scheduling rule, to make sure the servers we want to shut down aren’t going to accept new connections in “off business hours”, chances are much greater that these servers will have zero active sessions as people log off.

“Sounds great and simple. We have App Delivery Expo coming up next month. It’s going to be a great talking point. Can you have it done, like tomorrow?” Marketing guys asked.

“Well, we like it but it is likely going to take XXX man weeks to go through the release cycle. And we are fully booked” answered development team.

Finally, the technical folks in the business development group volunteered to deliver the first version via Citrix Developer Network with forum support. Because of my developer background, I volunteered to lead the project. We volunteered because we love doing something good for the environment, sooner than later. And we believe once we showed the leadership and initiative, the community (users and partners) will help us get there even if the initial functionality is limited. And it is easier to convince the product team to include such features in the future releases once we have positive feedbacks from users. Personally it is gratifying to be able to contribute to something I believe in while getting paid 

Thus “Citrix Power Smart for Presentation Server” project is born.

At this year’s “App Delivery Expo” (AKA IForum), we announced “Power Smart” initiative. Here is the link to the press release. If this project is successful, we may bring more exciting projects under this model. For example, a Power Smart Utility for Xen. Since then we’ve got many interests from partners and customers. I may be able to share some more information on that subject later.

We know Presentation Server very well. But we are not the experts in controlling the physical servers such as powering on/off servers. Luckily we found some like-minded folks at one of our great partners HP to help us. HP’s development team is busy too. But they gratefully provided advices and test equipments to allow us deliver a solution that will work with HP servers. And they happily agreed to do joint marketing with us. It’s been a pleasure working with the HP team involved with this project so far.

I’ve been itching to share more information with Citrix community about this project. But I felt I had to get the utility working and release it on schedule first.  I am still running some last minutes testing and getting feedbacks from selected beta users.  It now looks promising that we will have the utility delivered to the community as a New Year gift from Citrix.

I will share more details with you as we make progress.

In the mean time, I’d love to hear from you, good or bad. If you prefer, you can also send an email to me at Ray.Yang@citrix.com. I can’t promise to respond to every email. But I will try. For this reason, I would encourage you to comment on my blog or soon to be setup user forum to exchange your ideas with the broader community. Let’s do something good, together!

I hope you find this blog interesting. And if you do, please help us spread the message.

Thanks!