John Howard - Senior Program Manager in the Hyper-V team at Microsoft

Senior Program Manager, Hyper-V team, Windows Core Operating System Division.

Blogs

Hyperthreading and Microsoft Virtual Server 2005

  • Comments 9
  • Likes

Several people internally at Microsoft have commented that you should turn off Hyperthreading when you're running Microsoft Virtual Server 2005, especially under load. It appears that the overhead of scheduling between logical processors gives either no performance gain or even possibly adverse performance effects when the host OS is under a "high load".

It's also right there in the Virtual Server Administrators Guide under Best Practices:

Disable hyper-threading technology
Under heavy computing workloads, hyper-threading technology, which allows a single processor to appear as two processors, may cause poor server performance. Because workload is dynamic and can vary quickly, we recommended disabling hyper-threading on the physical server to prevent this potential problem.
 

Just something to be aware of. I haven't noticed any problem myself - maybe I need to work this machine a little harder  :-)

Comments
  • Seems a bit silly....

    why didn't they code the Virtual Server engine to handle HT chips?

    somehting like affinity -- bind a vm to a ht virtual cpu or something like that ...

  • FWIW, this is an Intel thing - HT chips just don't perform as well under heavy load - there's still only one physical processor.

  • Does this apply to virtual pc?

  • Yes, this applies equally as well to Virtual PC as it does to Virtual Server.

  • HT is nothing but good marketing. It looks cool to see a bunch of processors from within Windows but it doesn't do anything to increase performance.

  • For Distributed Computing projects, would it be better to have HT on or off? As these projects put the chip under constant 100% usage.

    Thanks

    Steve

  • Steve - assume you mean Distributed Computing on the box itself - not under Virtual Server? Again, the same should apply under extreme load. However, I'd recommend you also have a look at the Intel site at some of their whitepapers which go into much more detail about the whys and wherefores. Have a browse through some of the HT search results on Intel at http://search2.intel.com/corporate/default.aspx?culture=en-US&q=hyperthreading.

  • Cheers for the link, and thanks for the help.

    Steve

  • HT is more than marketing, on a multiuser system either terminal services or in our case an old mulitiuser VT100 app (unidata UDT) you can have a looping task and still have enough CPU left to log on and kill it.

    Before HT it could take half an hour to kill a task if the loop was tight enough.

    Looping aside 185 users on a windows 2003 box with quad HT xeons runs better for us than if we switch HT off.

    Years ago if you called a fault in to a second rate software house they said 'have you got buffers=20 and files=255' (Of course we had) or later they said 'switch off the virus checker' (No we wouldn't) now they say 'Disable HT' - its never fixed the fault yet.