Performance factors for virtualization

Just what are the important performance factors for Virtualization?

  • Throughput: can the application deliver the required levels of throughput, in terms of real world transactions?
  • Latency: is the latency of each transaction within tolerances, or affected by virtualization
  • Scalability: does throughput/latency change as load is increased (often asked in the context of – “do I have enough future headroom?”)
  • Memory efficiency: Doing more work with less memory – multi-core is rapidly providing an increasing amount of CPU, but memory remains a premium
  • Power-performance: Throughput relative to power, i.e. how much performance can I deliver for the power consumed
  • Space-performance: How much performance can I get per rack unit
  • Agility: What is the time taken to deploy a new application

Good practices for creating performance counters

Rico Mariani’s Performance Tidbits : Rico’s Instrumentation Aphorisms

Judiciously added instrumentation allows you to more easily pinpoint the states that lead to poor performance or failure. Well designed events inform monitoring software and IT admins about whether the software is operating normally, in a degraded state, or has failed completely. Good tracing events in conjunction with perf counters related to the work of the software allow diagnosis and tracking of trends. Events targeted to the administrator can identify what work was being done for which user context when a failure occurs.

Achieving Near-Linear Scalability Using …

Achieving Near-Linear Scalability Using Solaris OS on NUMA Architectures

Modern systems seek to maximize execution efficiency in three ways: by giving a thread an affinity for the processor on which it most recently ran, by giving a thread an affinity for the processor that is “closest” to the memory that the thread needs to access (lgroups in the Solaris OS), and by using large L2 and L3 caches. Sometimes these policies are not enough to ensure efficient and scalable execution.

Intelligent policy-based scheduling would help, but the operating system can only do so much. An experienced competent analyst with sufficient knowledge of the workload can make the crucial difference between a smooth-running efficient system and an unscalable, erratically performing system.