I’m working when I’m Idle

I’m working when I’m idle, well from my desktop’s perspective that is the case.  We all know that when a desktop starts, when a user logs on, when a user is working and when a user logs off that user has an impact on the system resources: CPU, Memory and Disk.  When the user is idle, we expect CPU and Disk to idle as well.  But is this accurate?   Take a look at my perfmon graph from my desktop for almost an entire workday:

As you can see, when I’m working my CPU and disk activity increases.  CPU increases to 25-30% and disk IOPS jumps to roughly 8 write IOPS and minimal read IOPS.  This is all as expected.  However, when I’m idle, my CPU utilization does drop, but not to 0%.  My disk IOPS does drop, but not to 0.  In fact, my write IOPS only drops to 4 IOPS.
Why? I’m idle. Doesn’t that mean I’m not consuming resources?  Time to put on my Sherlock Holmes hat and find out.

First, I had to look at the applications I was running:  Outlook, TweetDeck, Yahoo IM, Firefox, Word, OneNote.

Second, I had to understand what those applications do, which was easy because I use these applications every day.  TweetDeck is refreshing my Twitter feeds every few minutes.  Outlook is downloading and syncing my email every few minutes.  Firefox had 5 different pages open, many of which had constantly updating data.  Are we starting to see something interesting yet?

Evidently my dear Watson, even though I’m idle, my applications are not.  My applications are still active.  My applications are still using CPU resources. My applications are still storing information to disk.  Also, my operating system is still running processes as well (services, event logs, etc), which also have an impact on the resources.

This is an important realization in that your users still consume a fair amount of resources while at lunch or in meetings.   So when trying to calculate the number of IOPS you will generate from a single hypervisor server, you need to determine what percentage of desktops on that server are in which stage:

  • Bootup
  • Logon
  • Working
  • Idle
  • Logoff

By calculating this out, you will get a better idea of what your storage must be capable of supporting.

Now if I can only get my boss to believe that I’m working while I’m sleeping then we would be golden.
Daniel Feller
Lead Architect – Worldwide Consulting Solutions
Citrix Systems, Inc.
Blog: Virtualize My Desktop

4 thoughts on “I’m working when I’m Idle”

  1. Hi Daniel,

    Very useful information in the blog, Citrix TV & Ask The Architect. I spent the last few weeks going throug all the material I could gather. So I have one question. I understood that in VDI environments (PvS with Std disks) the RW ratio was something like 80-20 or 90-10.

    I happened to go through the article “VDI & Storage: Deep Impact” which you surely know (I think you refer to it in one of your posts):

    The thing is that in the article Herco van Brug says that the ratio is indeed 80-20 (or 90-10) but it is only true for the boot up and logon process. After a while, after the 1st app run, the RW ratio changes to 30-70 or even 80-20, just the opposite ratio that I have been reading all over.

    I’m interested in hearing your opinion and experience regarthing this point as designing the storage is going to be a key point in having success in any VDI project.


  2. Are you sure about the R/W percentages? What we see is during bootup, we are getting 90-100% reads (which makes sense when you think about it. The OS is reading all of this information into memory for the first time, and very little writing). Logon drops down to about 50-50 as the OS still reads a lot but also writes user specific changes. Then once apps start, our reads drop even more because everything is loaded. Everything the user does changes the system, which are writes, which ends up being 80-90% writes.


  3. Hi Feller!!!

    You’re right. The second percentages should be RW 30-70 and 20-80 instead of 30-70 and 80-20. Misspelled. Sorry for that.

    So, during buut up it is mainly reads.
    Logon is some 50-50 even, more or less.
    Then, it tends to be more on the write side.

    That makes sense to me.

    So, what do you recommend (you know, in general, I know we should always test for every particular environment) to do. My idea is to configure the Desktop Group to start the VM’s before the working hours, so we don’t have a boot storm. Then, during working hours we shuld have more writes than reads. With this scenario it would be better to configure the repository cache write IO’s better than read IO’s, right?

    Thanks a lot for the info and congratulations for the blog/docs/etc!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.