More from this week at the Intel Developer Forum. Link: IDF@Intel · Virtualization performance testing tips.

Their list of "common sources of errors and anomolies" is worth a
paper of its own, as you can tell it comes from long experience, but
for this blog post let me just hit the headers of their slides on
"common pitfalls." After reading this, I hope you will think twice
before just firing up a quick timer on a process in a virtual machine.
It’s probably not telling you what you think it’s telling you! (Most
real-world virtualized workloads are not performance-bound, anyway, but
that’s a whole other conversation.)

  • Time drift
  • Unmonitored failures (loadsim, webbench)
  • Disk space
  • Spurious interrupts, network isolation
  • IOPS contention
  • Client instabilities (memory leaks, MTU, login failurers)
  • VMM "knobs"
  • Guest OS knobs — Ticklessness (avoiding context switches)
  • Application tuneables — Java heap and large page tuneables
  • Affinitization (shared caches on multicore machines can help or hurt)
  • Service packs and application versions
  • Client memory exhaustion
  • VMM memory fragmentation, oversubscription
  • BIOS or hardware "knobs"