SlideShare a Scribd company logo
1 of 279
Download to read offline
VMware Performance for Gurus
Richard McDougall
Principal Engineer, VMware, Inc
rmc@vmware.com       @richardmcdougll
Usenix Tutorial, December, 2010




                                        © 2010 VMware Inc. All rights reserved
Abstract

!  This class teaches the fundamentals of performance and observability for
    vSphere virtualization technology.
!  The objective of the class is to learn how to be a practitioner of
    performance diagnosis and capacity planning with vSphere.
!  We use a combination of introductory vSphere internals and performance
    analysis techniques to expose what’s going on under the covers, learn
    how to interpret metrics, and how to triage performance problems.
!  We’ll learn how to interpret load measurements, to perform accurate
    capacity planning.




2
Credits

!  Thank you to the many contributors of slides and drawings, including:
    •  Ravi Soundararajan – VC and esxtop
    •  Andrei Dorofeev – Scheduling
    •  Patrick Tullmann – Architecture
    •  Bing Tsai – Storage
    •  Howie Xu - Networking
    •  Scott Drummonds – Performance
    •  Devaki Kulkarni - Tuning
    •  Jeff Buell – Tuning
    •  Irfan Ahmad – Storage & IO
    •  Krishna Raj Raja – Performance
    •  Kit Colbert – Memory
    •  Ole Agesen – Monitor Overview
    •  Sreekanth Setty - Networking
    •  Ajay Gulati - Storage
    •  Wei Zhang - Networking
    •  Amar Padmanabhan – Networking




3
Agenda/Topics

!  Introduction
!  Performance Monitoring
!  CPU
!  Memory
!  I/O and Storage
!  Networking
!  Applications




4
INTRODUCTION TO

    VIRTUALIZATION

         AND

     VMWARE VI/ESX



5
Traditional Architecture

Operating system performs various roles
 •  Application Runtime Libraries
 •  Resource Management (CPU, Memory etc)
 •  Hardware + Driver management




                                   "   Performance & Scalability of the OS
                                       was paramount
                                   "   Performance Observability tools are a
                                       feature of the OS




6
The Virtualized World
The OS takes on the role of a Library, Virtualization layer grows
Application
Run-time Libraries and Services
Application-Level Service Management

Application-decomposition of performance




                                                  Run-time or Deployment OS
                                                  Local Scheduling and Memory Management
                                                  Local File System

                                                  Infrastructure OS (Virtualization Layer)
                                                  Scheduling
                                                  Resource Management
                                                  Device Drivers
                                                  I/O Stack
                                                  File System
                                                  Volume Management
                                                  Network QoS
                                                  Firewall
                                                  Power Management
                                                  Fault Management
                                                  Performance Observability of System Resources




 7
vShere Platform


    Delegated Administration

               Developers        Application          Desktop    DBAs get their
                  QA              Owners             Managers
                                                                 Own per-DB Sandbox
               Test/Dev        Pre-Production        Desktop

                                                                Rapid, Templated
    Process                                                     DB Provisioning
    Automation/Control

                                                                Resource Management
    Distributed                                                 Availability, DR
    Virtualization                  DRS        HA   DR
                                                                Virtual, Portable
    Distributed                                                 DB Instances
    Management


    Hypervisor                                                  High Performance
                                                                Scalable Consolidation


    Physical                                                    Storage Virtualization




8
Hypervisor Architectures




         Virtual            Virtual                     Virtual              Virtual    Virtual
                                          General
                                       Dom0 (Linux)
        Machine            Machine      Purpose OS
                                            or         Machine              Machine    Machine
                                        Parent VM
        Drivers            Drivers      (Windows)      Drivers              Drivers    Drivers

                                        Drivers


                                                                            Drivers
      Dom0 or Parent Xen/Viridian
                     Partition Model                  Vmware ESX




Very Small Hypervisor
                                                      ESX Server
General purpose OS in parent partition for I/O and
   management                                         "   Small Hypervisor < 24 mb
                                                      "   Specialized Virtualization Kernel
All I/O driver traffic going thru parent OS
                                                      "   Direct driver model
Extra Latency, Less control of I/O
                                                      "   Management VMs
                                                         "   Remote CLI, CIM, VI API




  9
VMware ESX Architecture


                                                                        CPU is controlled by scheduler
                                                                        and virtualized by monitor
                                                           File
                                            TCP/IP        System        Monitor supports:
 Guest           Guest                                                  ! BT (Binary Translation)
                                                                        ! HW (Hardware assist)
                                                                        ! PV (Paravirtualization)

      Monitor                    Monitor (BT, HW, PV)


                                         Virtual NIC     Virtual SCSI
                                                                        Memory is allocated by the
     VMkernel
                            Memory
                                        Virtual Switch   File System
                                                                        VMkernel and virtualized by the
                Scheduler   Allocator
                                                                        monitor

                                        NIC Drivers      I/O Drivers



                                                                        Network and I/O devices are
                                                                        emulated and proxied though
     Physical
     Hardware                                                           native device drivers




10
Inside the Monitor: Classical Instruction Virtualization
Trap-and-emulate
!  Nonvirtualized (“native”) system
  •  OS runs in privileged mode
  •  OS “owns” the hardware
  •  Application code has less privilege                   Apps     Ring 3

                                                            OS
                                                                    Ring 0
!  Virtualized
  •  VMM most privileged (for isolation)
  •  Classical “ring compression” or “de-privileging”
      •  Run guest OS kernel in Ring 1
      •  Privileged instructions trap; emulated by VMM
                                                           Apps     Ring 3
  •  But: does not work for x86 (lack of traps)
                                                         Guest OS
                                                                    Ring 1


                                                           VMM      Ring 0




 11
Classical VM performance

!  Native speed except for traps
 •  Overhead = trap frequency * average trap cost
!  Trap sources:
 •  Privileged instructions
 •  Page table updates (to support memory virtualization)
 •  Memory-mapped devices
!  Back-of-the-envelope numbers:
 •  Trap cost is high on deeply pipelined CPUs: ~1000 cycles
 •  Trap frequency is high for “tough” workloads: 50 kHz or greater
 •  Bottom line: substantial overhead




12
Binary Translation of Guest Code

!  Translate guest kernel code
!  Replace privileged instrs with safe “equivalent” instruction sequences
!  No need for traps
!  BT is an extremely powerful technology
 •  Permits any unmodified x86 OS to run in a VM
 •  Can virtualize any instruction set




13
BT Mechanics

!  Each translator invocation
 •  Consume one input basic block (guest code)
 •  Produce one output basic block
!  Store output in translation cache
 •  Future reuse
 •  Amortize translation costs
 •  Guest-transparent: no patching “in place”



                     input                           translated
                     basic block                     basic block
          Guest                         translator




                                                                   Translation cache



14
Combining BT and Direct Execution




                                 Direct Execution
                              (user mode guest code)

           Faults, syscalls
           interrupts


                                      VMM


                                                       IRET, sysret


                              Binary Translation
                          (kernel mode guest code)




15
Performance of a BT-based VMM

!  Costs
  •  Running the translator
  •  Path lengthening: output is sometimes longer than input
  •  System call overheads: DE/BT transition
!  Benefits
  •  Avoid costly traps
  •  Most instructions need no change (“identical” translation)
  •  Adaptation: adjust translation in response to guest behavior
     •  Online profile-guided optimization
  •  User-mode code runs at full speed (“direct execution”)




16
Speeding Up Virtualization



     Technologies for optimizing performance



             Privileged instruction   Binary Translation, Paravirt. CPU
             virtualization           Hardware Virtualization Assist



                                      Binary translation Paravirt. Memory
             Memory virtualization
                                      Hardware Guest Page Tables



             Device and I/O           Paravirtualized Devices
             virtualization           Stateless offload, Direct Mapped I/O




17
Multi-mode Monitors




                 Guest                 Guest                 Guest             There are different types of
                                                                               Monitors for different
                                                                               Workloads and CPU types

                   Binary                Para-               Hardware
                                                                               VMware ESX provides a
                 Translation         Virtualization           Assist           dynamic framework to allow
                                                                               the best Monitor for the
                                             Virtual NIC        Virtual SCSI
                                                                               workload
                               Memory
     VMkernel                               Virtual Switch      File System
                Scheduler      Allocator                                       Let’s look at some of the
                                                                               charactersitics of the
                                             NIC Drivers         I/O Drivers   different monitors




     Physical
     Hardware




18
Virtualization Hardware Assist


More recent CPUs have features to
reduce some of the overhead at the
monitor level

1st Gen: Intel VT and AMD-V                               Guest

•  doesn’t remove all virtualization
   overheads: scheduling, memory
   management and I/O are still virtualized
   with a software layer
                                                                                 Monitor
2ndGen: AMD Barcelona RVI
and Intel EPT
                                                                                  Virtual NIC     Virtual SCSI
•  Helps with memory virtualization
                                                                     Memory
   overheads                                  VMkernel                           Virtual Switch   File System
                                                         Scheduler   Allocator
•  Most workloads run with less than 10%
   overhead
•  EPT provides performance gains of up to                                        NIC Drivers     I/O Drivers
   30% for MMU intensive benchmarks
   (Kernel Compile, Citrix etc)
•  EPT provides performance gains of up to
   500% for MMU intensive micro-
   benchmarks
•  Far fewer “outlier” workloads              Physical
                                              Hardware




 19
vSphere 4 Monitor Enhancements

!  8-VCPU virtual Machines
 •  Impressive scalability from 1-8 vCPUs
!  Monitor type chosen based on Guest OS and CPU model
 •  UI option to override the default
!  Support for upcoming processors with hardware memory virtualization
 •  Rapid Virtualization Indexing from AMD already supported
 •  Extended Page Table from Intel
 •  Improvements to software memory virtualization
!  Better Large Page Support (Unique to VMware ESX)
 •  (Includes enhancements in VMkernel)




20
Intel VT-x / AMD-V: 1st Generation HW Support

!  Key feature: root vs. guest CPU mode
 •  VMM executes in root mode
                                                  Apps             Ring 3




                                                                            Guest mode
 •  Guest (OS, apps) execute in guest mode
                                                Guest OS
!  VMM and Guest run as                                            Ring 0
 “co-routines”




                                                                            Root mode
                                                VM         VM
 •  VM enter                                    exit       enter

 •  Guest runs                                    VMM

 •  A while later: VM exit
 •  VMM runs
 •  ...




21
How VMM Controls Guest Execution

!  Hardware-defined structure
 •  Intel: VMCS (virtual machine control structure)
 •  AMD: VMCB (virtual machine control block)
!  VMCB/VMCS contains
 •  Guest state
 •  Control bits that define conditions for exit
    •  Exit on IN, OUT, CPUID, ...                       VMM          Guest
                                                           VMCB
    •  Exit on write to control register CR3               physical CPU
    •  Exit on page fault, pending interrupt, ...
 •  VMM uses control bits to “confine” and observe guest




22
Performance of a VT-x/AMD-V Based VMM

!  VMM only intervenes to handle exits
!  Same performance equation as classical trap-and-emulate:
 •  overhead = exit frequency * average exit cost
!  VMCB/VMCS can avoid simple exits (e.g., enable/disable interrupts), but
 many exits remain
 •  Page table updates
 •  Context switches
 •  In/out
 •  Interrupts




23
Qualitative Comparison of BT and VT-x/AMD-V

!  BT loses on:
 •  system calls
                                      !  VT-x/AMD-V loses on:
 •  translator overheads
                                       •  exits (costlier than “callouts”)
 •  path lengthening
                                       •  no adaptation (cannot elim. exits)
 •  indirect control flow
                                       •  page table updates
!  BT wins on:                         •  memory-mapped I/O
 •  page table updates (adaptation)
                                       •  IN/OUT instructions
 •  memory-mapped I/O (adapt.)
                                      !  VT-x/AMD-V wins on:
 •  IN/OUT instructions
                                       •  system calls
 •  no traps for priv. instructions
                                       •  almost all code runs “directly”




24
Qualitative Comparison of BT and VT-x/AMD-V

!  BT loses on:
 •  system calls
                                      !  VT-x/AMD-V loses on:
 •  translator overheads
                                       •  exits (costlier than “callouts”)
 •  path lengthening
                                       •  no adaptation (cannot elim. exits)
 •  indirect control flow
                                       •  page table updates
!  BT wins on:                         •  memory-mapped I/O
 •  page table updates (adaptation)
                                       •  IN/OUT instructions
 •  memory-mapped I/O (adapt.)
                                      !  VT-x/AMD-V wins on:
 •  IN/OUT instructions
                                       •  system calls
 •  no traps for priv. instructions
                                       •  almost all code runs “directly”




25
Qualitative Comparison of BT and VT-x/AMD-V

!  BT loses on:
 •  system calls
                                      !  VT-x/AMD-V loses on:
 •  translator overheads
                                       •  exits (costlier than “callouts”)
 •  path lengthening
                                       •  no adaptation (cannot elim. exits)
 •  indirect control flow
                                       •  page table updates
!  BT wins on:                         •  memory-mapped I/O
 •  page table updates (adaptation)
                                       •  IN/OUT instructions
 •  memory-mapped I/O (adapt.)
                                      !  VT-x/AMD-V wins on:
 •  IN/OUT instructions
                                       •  system calls
 •  no traps for priv. instructions
                                       •  almost all code runs “directly”




26
VMexit Latencies are getting lower…


                       Intel Architecture VMexit Latencies
          1600


          1400


          1200                                                Latency (cycles)

          1000


           800


           600


           400


           200


             0
                   Prescott    Cedar Mill   Merom    Penryn        Nehalem (Estimated)




     !  VMexit performance is critical to hardware assist-based virtualization
     !  In additional to generational performance improvements, Intel is improving VMexit
       latencies



27
Virtual Memory in a Native OS


          Process 1                             Process 2
      0                          4GB        0                4GB
                                                                       Virtual    VA
                                                                       Memory




                                                                       Physical   PA
                                                                       Memory




     !  Applications see contiguous virtual address space, not physical memory
     !  OS defines VA -> PA mapping
          •  Usually at 4 KB granularity: a page at a time
          •  Mappings are stored in page tables




28
Virtual Memory (ctd)


          Process 1                             Process 2
      0                          4GB        0                         4GB
                                                                                    Virtual          VA
                                                                                    Memory




                                                                                    Physical         PA
                                                                                    Memory




     !  Applications see contiguous virtual address space, not physical memory
     !  OS defines VA -> PA mapping
                                                             TLB                    VA→PA mapping
          •  Usually at 4 KB granularity                    VA   PA

          •  Mappings are stored in page tables
     !  HW memory management unit (MMU)                                      %cr3              ...

          •  Page table walker                                           TLB fill
                                                                        hardware
          •  TLB (translation look-aside buffer)




29
Virtualizing Virtual Memory


                 VM 1                                VM 2

     Process 1          Process 2        Process 1          Process 2
                                                                          Virtual    VA
                                                                          Memory


                                                                          Physical   PA
                                                                          Memory


                                                                          Machine    MA
                                                                          Memory


     !  To run multiple VMs on a single system, another level of memory virtualization
       must be done
       •  Guest OS still controls virtual to physical mapping: VA -> PA
       •  Guest OS has no direct access to machine memory (to enforce isolation)
     !  VMM maps guest physical memory to actual machine memory: PA -> MA




30
Virtualizing Virtual Memory
Shadow Page Tables


                 VM 1                                  VM 2

     Process 1          Process 2          Process 1          Process 2
                                                                             Virtual    VA
                                                                             Memory


                                                                             Physical   PA
                                                                             Memory


                                                                             Machine    MA
                                                                             Memory


         !  VMM builds “shadow page tables” to accelerate the mappings
            •  Shadow directly maps VA -> MA
            •  Can avoid doing two levels of translation on every access
            •  TLB caches VA->MA mapping
            •  Leverage hardware walker for TLB fills (walking shadows)
            •  When guest changes VA -> PA, the VMM updates shadow page tables




31
3-way Performance Trade-off in Shadow Page Tables

!  1. Trace costs
  •  VMM must intercept Guest writes to primary page tables
  •  Propagate change into shadow page table (or invalidate)
!  2. Page fault costs
  •  VMM must intercept page faults
  •  Validate shadow page table entry (hidden page fault), or
     forward fault to Guest (true page fault)
!  3. Context switch costs
  •  VMM must intercept CR3 writes
  •  Activate new set of shadow page tables
!  Finding good trade-off is crucial for performance
!  VMware has 9 years of experience here




32
!  VMware currently supports and Scaling to Wide vSMP
      Shadow Page Tables up to 4-way vSMP

!  Problems lurk in scaling to higher numbers of vCPUs
 •  Per-vcpu shadow page tables
    •  High memory overhead
    •  Process migration costs (cold shadows/lack of shadows)
    •  Remote trace events costlier than local events
 •  vcpu-shared shadow page tables
    •  Higher synchronization costs in VMM
!  Can already see this in extreme cases
 •  forkwait is slower on vSMP than a uniprocessor VM




33
2nd Generation Hardware Assist
Nested/Extended Page Tables


                                              VA→PA mapping



                              Guest PT ptr              ...
           TLB
          VA MA


                         TLB fill                             guest
                        hardware                              VMM



                          Nested PT ptr




                                             PA→MA mapping




34
Analysis of NPT

!  MMU composes VA->PA and PA->MA mappings on the fly at TLB fill time
!  Benefits
 •  Significant reduction in “exit frequency”
     •  No trace faults (primary page table modifications as fast as native)
     •  Page faults require no exits
     •  Context switches require no exits
 •  No shadow page table memory overhead
 •  Better scalability to wider vSMP
     •  Aligns with multi-core: performance through parallelism
!  Costs
 •  More expensive TLB misses: O(n2) cost for page table walk,
     where n is the depth of the page table tree




35
Analysis of NPT

!  MMU composes VA->PA and PA->MA mappings on the fly at TLB fill time
!  Benefits
 •  Significant reduction in “exit frequency”
     •  No trace faults (primary page table modifications as fast as native)
     •  Page faults require no exits
     •  Context switches require no exits
 •  No shadow page table memory overhead
 •  Better scalability to wider vSMP
     •  Aligns with multi-core: performance through parallelism
!  Costs
 •  More expensive TLB misses: O(n2) cost for page table walk,
     where n is the depth of the page table tree




36
Improving NPT Performance
Large pages
!  2 MB today, 1 GB in the future
  •  In part guest’s responsibility: “inner” page tables
      •  For most guests/workloads this requires explicit setup
  •  In part VMM’s responsibility: “outer” page tables
      •  ESX will take care of it
!  1st benefit: faster page walks (fewer levels to traverse)
!  2nd benefit: fewer page walks (increased TLB capacity)




                                TLB

                                           MMU




37
Hardware-assisted Memory Virtualization



                                    Efficiency Improvement


           60%



           50%



           40%



           30%



           20%



           10%



            0%
                   Apache Compile                SQL Server    Citrix XenApp



                                      Efficiency Improvement




38
vSphere Monitor Defaults




39
Performance Help from the Hypervisor

!  Take advantage of new Hardware
 •  Utilize multi-core systems easily without changing the app or OS
 •  Leverage 64-bit memory hardware sizes with existing 32-bit VMs
 •  Take advantage of newer high performance I/O + networking asynchronously from
     guest-OS changes/revs.
!  More flexible Storage
 •  More options for distributed, reliable boot
 •  Leverage low-cost, high performance NFS, iSCSI I/O for boot or data without changing
     the guest OS
!  Distributed Resource Management
 •  Manage Linux, Solaris, Windows with one set of metrics and tools
 •  Manage horizontal apps with cluster-aware resource management




40
CPU and Memory Paravirtualization



Paravirtualization extends the
                                                                                             File
guest to allow direct interaction                                                           System
with the underlying hypervisor                  Guest                    TCP/IP




Paravirtualization reduces the
monitor cost including memory
and System call operations.                           Monitor                     Monitor


Gains from paravirtualization                                           Virtual NIC     Virtual SCSI
are workload specific
                                                           Memory
                                    VMkernel                           Virtual Switch   File System
                                               Scheduler   Allocator
Hardware virtualization
mitigates the need for some of                                         NIC Drivers          I/O Drivers
the paravirtualization calls

VMware approach:
VMI and paravirt-ops
                                    Physical
                                    Hardware




41
Device Paravirtualization



Device Paravirtualization places
                                                                                           File
A high performance virtualization-                                                        System
Aware device driver into the guest               Guest                    TCP/IP



                                                                          pvdriver
Paravirtualized drivers are more
CPU efficient (less CPU over-
head for virtualization)                                                Monitor


                                                                         pvdevice        Virtual SCSI
Paravirtualized drivers can
                                                            Memory
also take advantage of HW            VMkernel
                                                Scheduler   Allocator
                                                                        Virtual Switch   File System
features, like partial offload
(checksum, large-segment)
                                                                         NIC Drivers     I/O Drivers


VMware ESX uses para-
virtualized network drivers
                                     Physical
                                     Hardware




42
Storage – Fully virtualized via VMFS and Raw Paths


                                                           Guest OS            Guest OS

                       Guest OS
                                                     /dev/hda                         /dev/hda

                              /dev/hda        VMFS         database1.vmdk   database2.vmdk




                                FC LUN                                          FC or iSCSI
                                                                                LUN
! RAW                                       ! VMFS
! RAW provides direct access to             ! Leverage templates and quick
                                            provisioning
a LUN from within the VM
                                            ! Fewer LUNs means you don’t have to
! Allows portability between physical and   watch Heap
virtual                                     ! Scales better with Consolidated Backup
! RAW means more LUNs                       ! Preferred Method
  •  More provisioning time
! Advanced features still work


  43
Optimized Network Performance

                                                                        Network stack and drivers
                                                                        ere implemented in ESX
                                                                        layer (not in the guest)
                                                            File
                                            TCP/IP         System       VMware’s strategy is to
                 Guest
                                                                        optimize the network stack
                                                                        in the ESX layer, and keep
                                                                        the guest 100% agnostic of
                                                                        the underlying hardware
                                        Monitor
                                                                        This enables full-virtualization
                                         Virtual NIC     Virtual SCSI   capabilities (vmotion etc)
                            Memory
     VMkernel
                Scheduler   Allocator
                                        Virtual Switch   File System    ESX Stack is heavily
                                                                        Performance optimized
                                         NIC Drivers     I/O Drivers
                                                                        ESX Focus: stateless offload;
                                                                        including LSO (large segment
                                                                        Offload), Checksum offload,
                                                                        10Gbe perf, Multi-ring NICs
     Physical
     Hardware




44
Guest-Transparent NFS and iSCSI
iSCSI and NFS Virtualization in VMware ESX




                                                                        iSCSI and NFS are growing
                                                            File        To be popular, due to their
                                            TCP/IP         System
                 Guest                                                  low port/switch/fabric costs

                                                                        Virtualization provides the
                                                                        ideal mechanism to
                                                                        transparently adopt iSCSI/NFS
                                        Monitor

                                                                        Guests don’t need iSCSI/NFS
                                         Virtual NIC
                                                         Virtual SCSI   Drivers: they continue to see
     VMkernel
                            Memory                                      SCSI
                                        Virtual Switch
                Scheduler   Allocator                      iSCSI
                                                             Or
                                                            NFS
                                                                        VMware ESX 3 provides high
                                         NIC Drivers                    Performance NFS and iSCSI
                                                                        Stacks

                                                                        Futher emphasis on 1Gbe/
     Physical                                                           10Gbe performance
     Hardware




45
INTRODUCTION TO

      PERFORMANCE

       MONITORING




46
Traditional Architecture



        Operating system performs various roles
         •  Application Runtime Libraries
         •  Resource Management (CPU, Memory etc)
         •  Hardware + Driver management




                                  "   Performance & Scalability of the OS
                                      was paramount
                                  "   Performance Observability tools are a
                                      feature of the OS




47
Performance in a Virtualized World
The OS takes on the role of a Library, Virtualization layer grows



                                                     Application
                                                     Run-time Libraries and Services
                                                     Application-Level Service Management
                                                     Application-decomposition of performance


                                                  Run-time or Deployment OS
                                                  Local Scheduling and Memory Management
                                                  Local File System

                                                  Infrastructure OS (Virtualization Layer)
                                                  Scheduling
                                                  Resource Management
                                                  Device Drivers
                                                  I/O Stack
                                                  File System
                                                  Volume Management
                                                  Network QoS
                                                  Firewall
                                                  Power Management
                                                  Fault Management
                                                  Performance Observability of System Resources




48
Performance Management Trends


     Partitioning     Distributed Resource    Service-Oriented/
                          Management         Service-Level Driven




                                             Web         App


                                                   DB




       ESX 1.x             vSphere                 PaaS,
                                                   Appspeed


49
Performance Measurement

!  Three basic performance measurement metrics:
     •  Throughput: Transactions per/Sec, Instructions Retired per sec, MB/sec, IOPS, etc,
        …
     •  Latency: How long does it take
         •  e.g., Response time
     •  Utilization: How much resource is consumed to perform a unit of work
!  Latency and throughput are often inter-related, latency becomes
 important for smaller jobs




50
Throughput, Queues and Latency




                                                                           Customers
                                                                           Serviced
Arriving                                                                   (throughput is
                        Queue
Customers                                                                  customers
                        (how many people in
(arrivals per minute)                           Checkout                   service per
                        queue)
                                                Utilization = percentage   minute)
                                                of time busy serving
                                                customers




                           queue time                    service time


                                response time


  51
Mathematical Representation, terms




     Arriving            Queue
     Customers
                                                                  Checkout

                                 Utilization = busy-time at server / time elapsed
                 input                                    output

                                             server



                           queue time        service time


                                 response time

52
Throughput,Utilization and Response time are connected


     The Buzen and Denning Method




53
Relationship between Utilization and Response Time




54
Summary of Queuing and Measurements

!  Utilization is a measure of the resources, not quality of service
 •  We can measure utilization (e.g. CPU), but don’t assume good response time
 •  Measuring service time and queuing (Latency) is much more important
!  Throughput shows how much work is completed only
 •  Quality of service (response time) may be compromised if there is queuing or slow
     service times.
!  Make sure your key measurement indicators represent what constitutes
 good performance for your users
 •  Measure end-user latency of users
 •  Measure throughput and latency of a system
!  Common mistakes
 •  Measure something which has little to do with end-user happiness/performance
 •  Measure utilization only
 •  Measure throughput of an overloaded system with a simple benchmark, resulting in
     artificially high results since response times are bad



55
Potential Impacts to Performance

!  Virtual Machine Contributors Latency:
  •  CPU Overhead can contribute to latency
  •  Scheduling latency (VM runnable, but waiting…)
  •  Waiting for a global memory paging operation
  •  Disk Reads/Writes taking longer
!  Virtual machine impacts to Throughput:
  •  Longer latency, but only if the application is thread-limited
  •  Sub-systems not scaling (e.g. I/O)
!  Virtual machine Utilization:
  •  Longer latency, but only if the application is thread-limited




56
Comparing Native to Virtualized Performance

!  Pick the key measure
 •  Not always Utilization
 •  User response-time and throughput might be more important
!  It’s sometimes possible to get better virtual performance
 •  Higher throughput: Can use multiple-VMs to scale up higher than native
 •  Memory sharing can reduce total memory footprint
!  Pick the right benchmark
 •  The best one is your real application
 •  Avoid micro-benchmarks: they often emphasize the wrong metric
     •  especially in virtualized environments




57
Performance Tricks and Catches

!  Can trade-off utilization for latency
  •  Offloading to other CPUs can improve latency of running job at the cost of more
      utilization
  •  A good thing in light of multi-core
!  Latency and Throughput may be skewed by time
  •  If the time measurement is inaccurate, so will be the latency or throughput
      measurements
  •  Ensure that latency and throughput are measured from a stable time source




 58
Time keeping in Native World

!  OS time keeping
 •  OS programs the timer hardware to deliver timer interrupts at specified frequency
 •  Time tracked by counting timer interrupts
 •  Interrupts are masked in critical section of the OS code
 •  Time loss is inevitable however rate of progress of time is nearly constant
!  Hardware time keeping
 •  TSC: Processor maintains Time Stamp Counter. Applications can query TSC (RDTSC
     instruction) for high precision time
      •  Not accurate when processor frequency varies (e.g. Intel’s Speedstep)




59
Time keeping in Virtualized World

!  OS time keeping
 •  Time progresses in the guest with the delivery of virtual timer interrupts
 •  Under CPU over commitment timer interrupts may not be delivered to the guest at the
     requested rate

 •  Lost ticks are compensated with fast delivery of timer interrupts
     •  Rate of progress of time is not constant (Time sync does not address this issue)

!  Hardware time keeping
 •  TSC: Guest OSes see pseudo-TSC that is based on physical CPU TSC
 •  TSC’s may not be synchronized between physical CPUs
 •  RDTSC is unreliable if the VM migrates between physical CPUs or across host
     (Vmotion)




60
Native-VM Comparison Pitfalls (1 of 3)

!  Guest reports clock speed of the
 underlying physical processor
 •  Resource pool settings may limit the CPU
    clock cycles
 •  Guest may not get to use the CPU all the
    time under contention with other virtual
    machines
!  Guest reports total memory allocated
 by the user
 •  This doesn’t have to correspond to the
     actual memory currently allocated by the
     hypervisor




61
Native-VM Comparison Pitfalls (2 of 3)

!  Processor Utilization accounting
 •  Single threaded application can ping pong
    between CPUs
 •  CPU utilization reported in
    task manager is normalized per CPU
 •  Windows does not account idle loop spinning


!  Available Memory
 •  Available memory inside the
     guest may come from swap
     on the host




62
Native-VM Comparison Pitfalls (3 of 3)

!  Hardware setup and configuration differences
 •  Processor: Architecture, cache, clock speed
     •  Performance difference between different architecture is quite substantial
     •  L2, L3 cache size impacts performance of some workload
     •  Clock speed becomes relevant only when the architecture is the same
 •  Disk : Local dedicated disk versus shared SAN
     •  Incorrect SAN configuration could impact performance
 •  File system: Local file system versus Distributed VMFS
     •  Distributed file systems (VMFS) have locking overhead for metadata updates
 •  Network: NIC adapter class, driver, speed/duplex


 " Slower hardware can outperform powerful hardware when the latter shares resources
  with more than one OS/Application




63
Virtualized World Implications

!  Guest OS metrics
     •  Performance metrics in the guest could be skewed when the rate of progress of time is skewed
     •  Guest OS resource availability can give incorrect picture
!  Resource availability
 •  Resources are shared, hypervisors control the allocation
 •  Virtual machines may not get all the hardware resources
!  Performance Profiling
     •  Hardware performance counters are not virtualized
     •  Applications cannot use hardware performance counters for performance profiling in the guest
!  Virtualization moves performance measurement and management to the
 hypervisor layer




64
Approaching Performance Issues

 •  Make sure it is an apples-to-apples comparison
 •  Check guest tools & guest processes
 •  Check host configurations & host processes
 •  Check VirtualCenter client for resource issues
 •  Check esxtop for obvious resource issues
 •  Examine log files for errors
 •  If no suspects, run microbenchmarks (e.g., Iometer, netperf) to narrow scope
 •  Once you have suspects, check relevant configurations
 •  If all else fails…discuss on the Performance Forum




65
Tools for Performance Analysis

!  VirtualCenter client (VI client):
  •  Per-host and per-cluster stats
  •  Graphical Interface
  •  Historical and Real-time data
!  esxtop: per-host statistics
  •  Command-line tool found in the console-OS
!  SDK
  •  Allows you to collect only the statistics they want
!  All tools use same mechanism to retrieve data (special vmkernel calls)




 66
Important Terminology



                                                                 File
                                                TCP/IP          System
         Service
vCPU     Console     Guest
                                                                             Virtual Disk

cCPU                                                                          VMHBA
          Monitor                           Monitor                         vNIC

                                             Virtual NIC     Virtual SCSI

                                Memory
         VMkernel                           Virtual Switch   File System
                    Scheduler   Allocator


                                             NIC Drivers     I/O Drivers




                                                                              HBA
         Physical
         Hardware



 pCPU                                                                         Physical Disk
                                                  pNIC

 67
VI Client




                                                        Chart Type

            Real-time vs. Historical

                                                   Object




                                                Counter type




                                       Rollup                  Stats type




68
VI Client

!  Real-time vs. archived statistics (past hour vs. past day)
!  Rollup: representing different stats intervals
!  Stats Type: rate vs. number
!  Objects (e.g., vCPU0, vCPU1, all CPUs)
!  Counters (e.g., which stats to collect for a given device)
!  Stacked vs. Line charts




69
Real-time vs. Historical stats



     !  VirtualCenter stores statistics at different granularities

     Time Interval             Data frequency            Number of samples

     Past Hour (real-time) 20s                           180

     Past Day                  5 minutes                 288
     Past Week                 15 minutes                672
     Past Month                1 hour                    720
     Past Year                 1 day                     365




70
Stats Infrastructure in vSphere

     4. Rollups


                       DB
                                             ESX
     3. Send
        5-min
        stats to DB

                                             ESX

                  vCenter Server
                   (vpxd, tomcat)
                                                   1. Collect
                       2. Send 5-min stats            20s and
                          to vCenter         ESX
                                                      5-min
                                                      host and
                                                      VM stats

71
Rollups




                      1.    Past-Day (5-minutes) " Past-Week
                      2.    Past-Week (30-minutes) " Past-Month
                      3.    Past-Month (2-hours) " Past-Year
                      4.    (Past-Year = 1 data point per day)
       DB


 DB only archives historical data
 •  Real-time (i.e., Past hour) NOT archived at DB
 •  Past-day, Past-week, etc. " Stats Interval
 •  Stats Levels ONLY APPLY TO HISTORICAL DATA



72
Anatomy of a Stats Query: Past-Hour (“RealTime”) Stats




                                  DB
                                                             ESX




                1. Query

      Client                                                 ESX

                             vCenter Server
                              (vpxd, tomcat)
               3. Response
                                       2. Get stats
                                          from host
                                                             ESX
     No calls to DB
     Note: Same code path for past-day stats within last 30 minutes

73
Anatomy of a Stats Query: Archived Stats




                                    DB
                                               ESX

                     2. Get stats

                1. Query

      Client                                   ESX

                             vCenter Server
                              (vpxd, tomcat)
               3. Response

                                               ESX
     No calls to ESX host (caveats apply)
     Stats Level = Store this stat in the DB

74
Stats type

!  Statistics type: rate vs. delta vs. absolute



      Statistics type        Description          Example

      Rate                   Value over the       CPU Usage (MHz)
                             current interval


      Delta                  Change from          CPU Ready time
                             previous interval


      Absolute               Absolute value       Memory Active
                             (independent of
                             interval)
 75
Objects and Counters

!  Objects: instances or aggregations of devices
 •  Examples: VCPU0, VCPU1, vmhba1:1:2, aggregate over all NICs


!  Counters: which stats to collect
 •  Examples:
     •  CPU: used time, ready time, usage (%)
     •  NIC: network packets received
     •  Memory: memory swapped




76
Stacked vs. Line charts



     !  Line
       •  Each instance shown separately


     !  Stacked
       •  Graphs are stacked on top of each other
       •  Only applies to certain kinds of charts, e.g.:
         •  Breakdown of Host CPU MHz by Virtual Machine
         •  Breakdown of Virtual Machine CPU by VCPU




77
esxtop

!  What is esxtop ?
     •  Performance troubleshooting tool for ESX host
     •  Displays performance statistics in rows and column format




                                                                    Fields




                                       Entities -running
                                       worlds in this
                                       case




78
esxtop FAQ

!  Where to get it?
     •  Comes pre-installed with ESX service console
     •  Remote version of esxtop (resxtop) ships with the Remote Command Line interface (RCLI)
      package



!  What are its intended use cases?
     •  Get a quick overview of the system
     •  Spot performance bottlenecks


!  What it is not meant for ?
     •  Not meant for long term performance monitoring, data mining, reporting, alerting etc. Use VI
      client or the SDK for those use cases




79
esxtop FAQ

!  What is the difference between esxtop and resxtop




                               esxtop         VMKernel

                            Service Console
                                                ESX




            resxtop                Network            hostd            VMKernel

     Linux client machine
                                                          ESXi / ESX




80
Introduction to esxtop

!  Performance statistics
     •  Some are static and don’t change during runtime, for example MEMSZ (memsize), VM Name
      etc


     •  Some are computed dynamically, for example CPU load average, memory over-commitment
      load average etc


     •  Some are calculated from the delta between two successive snapshots. Refresh interval (-d)
      determines the time between successive snapshots
        •  for example %CPU used = ( CPU used time at snapshot 2 - CPU used time at snapshot 1 ) /
            time elapsed between snapshots




81
esxtop modes

!  Interactive mode (default)
     •  Shows data in the screen and accepts keystrokes
     •  Requires TERM=xterm


!  Batch mode (-b)
     •  Dumps data to stdout in CSV format
     •  Dumps default fields or fields stored in the configuration file


!  Replay mode (-R)
     •  Replays data from vm-support performance snapshot




82
esxtop interactive mode

!  Global commands
     •  space - update display
     •  s - set refresh interval (default 5 secs)
     •  f - select fields (context sensitive)
     •  W - save configuration file (~/.esxtop3rc)
     •  V - view VM only
     •  oO - Change the order of displayed fields (context sensitive)
     •  ? - help (context sensitive)
     •  ^L - redraw screen
     •  q - quit




83
esxtop screens



! Screens
     •  c: cpu (default)
     •  m: memory
     •  n: network                                  VM         VM       VM        VM
     •  d: disk adapter
     •  u: disk device (added in ESX 3.5)
     •  v: disk VM (added in ESX 3.5)             CPU        Memory     Virtual
                                                                                    vSCSI
                                                Scheduler   Scheduler   Switch
     •  i: Interrupts (new in ESX 4.0)
     •  p: power management (new in ESX 4.1)     c, i, p      m          n        d, u, v
                                               VMkernel




84
Using screen




     Time     Uptime   running worlds




                                        fields hidden from the view…

     • Worlds = VMKernel processes
     • ID = world identifier
     • GID = world group identifier
     • NWLD = number of worlds




85
Using screen - expanding groups




     press ‘e’ key




      • In rolled up view stats are cumulative of all the worlds in the group
      • Expanded view gives breakdown per world
      • VM group consists of mks, vcpu, vmx worlds. SMP VMs have additional vcpu
      and vmm worlds
      • vmm0, vmm1 = Virtual machine monitors for vCPU0 and vCPU1 respectively




86
esxtop replay mode

!  To record esxtop data
     •  vm-support -S -d <duration>


!  To replay
     •  tar xvzf vm-support-dump.tgz
     •  cd vm-support-*/
     •  esxtop -R ./ (esxtop version should match)




87
esxtop replay mode




              Current time




88
esxtop batch mode

!  Batch mode (-b)
 •  Produces windows perfmon compatible CSV file
 •  CSV file compatibility requires fixed number of columns on every row - statistics of
     VMs/worlds instances that appear after starting the batch mode are not collected
     because of this reason
 •  Only counters that are specified in the configuration file are collected, (-a) option
     collects all counters
 •  Counters are named slightly differently




89
esxtop batch mode

!  To use batch mode
      •  esxtop -b > esxtop_output.csv


!  To select fields
      •  Run esxtop in interactive mode
      •  Select the fields
      •  Save configuration file (‘w’ key)


!  To dump all fields
      •  esxtop -b -a > esxtop_output.csv




 90
esxtop batch mode – importing data into perfmon




91
esxtop batch mode – viewing data in perfmon




92
esxtop batch mode – trimming data




          Trimming data
                                     Saving data after trim




93
esxplot

!  http://labs.vmware.com/flings/esxplot




94
SDK

!  Use the VIM API to access statistics relevant to a particular user

!  Can only access statistics that are exported by the VIM API (and thus are
 accessible via esxtop/VI client)




95
Conclusions

!  Always Analyze with a Latency approach
   •  Response time of user
   •  Queuing for resources in the guest
   •  Queuing for resources in vSphere
   •  Queing for resources outside of the host (SAN, NAS etc)
!  These tools are useful in different contexts
      •  Real-time data: esxtop
      •  Historical data: VirtualCenter
      •  Coarse-grained resource/cluster usage: VirtualCenter
      •  Fine-grained resource usage: esxtop




 96
CPU




97
CPUs and Scheduling


                                                o  Schedule virtual CPUs on
                                                   physical CPUs
                                                o  Virtual time based proportional-
                                                   share CPU scheduler
                Guest       Guest     Guest
                                                o  Flexible and accurate rate-based
                                                   controls over CPU time
                                                   allocations
                                                o  NUMA/processor/cache topology
                Monitor     Monitor   Monitor
                                                   aware
                                                o  Provide graceful degradation in
                                                   over-commitment situations
     VMkernel             Scheduler             o  High scalability with low
                                                   scheduling latencies
                                                o  Fine-grain built-in accounting for
                                                   workload observability
                                                o  Support for VSMP virtual
                                                   machines
     Physical
     CPUs




98
Resource Controls

!  Reservation
  •  Minimum service level guarantee (in MHz)
                                                         Total Mhz
  •  Even when system is overcommitted
  •  Needs to pass admission control
                                                              Limit
!  Shares
  •  CPU entitlement is directly proportional to VM's
      shares and depends on the total number of         Shares
      shares issued                                      apply
                                                         here
  •  Abstract number, only ratio matters

!  Limit                                                Reservation

  •  Absolute upper bound on CPU entitlement (in MHz)
  •  Even when system is not overcommitted
                                                             0 Mhz




 99
Resource Control Example




                    Add 2nd VM                  Add 3rd VM
        100%      ► with same           50%   ► with same
                      number                      number                33.3%
                     of shares                   of shares



                                                                      ▼
                                                             Set 3rd VM’s limit to
                                                             25% of total capacity




        FAILED     Add 4th VM                 Set 1st VM’s
                   with reservation           reservation to
      ADMISSION                     ◄
                   set to 75% of              50% of total ◄            37.5%
       CONTROL     total capacity       50%   capacity




100
Resource Pools

!  Motivation
  •  Allocate aggregate resources for sets of VMs
  •  Isolation between pools, sharing within pools
  •  Flexible hierarchical organization
  •  Access control and delegation                                           Admin

!  What is a resource pool?
  •  Abstract object with permissions
  •  Reservation, limit, and shares                  L: not set     Pool A           Pool B   L: 2000Mhz
                                                     R: 600Mhz                                R: not set
  •  Parent pool, child pools and VMs                S: 60 shares                             S: 40 shares

  •  Can be used on a stand-alone
      host or in a cluster (group of hosts)

                                                          VM1        VM2     VM3       VM4




                                                                               60%            40%




101
Example migration scenario 4_4_0_0 with DRS




                                                                                                                                                     vCenter
                                                                                                                                           HP                                                                                                                         HP
                                                        1           2                                                                   ProLiant                                           1          2                                                            ProLiant
                                                                    OVER                                                                DL380G6                                                       OVER                                                         DL380G6
                                           1            2           TEMP                 1       5                                                                          1              2          TEMP                       1       5
                                 POWER         POWER                                                                                                                  POWER        POWER
                                 SUPPLY        SUPPLY               INTER                                        PL A Y ER                                            SUPPLY       SUPPLY             INTER                                      PL A Y ER
                                                                    LOCK                                                                                                                              LOCK
                                 POWER CAP                                                                                                                            POWER CAP
                                                                     DIMMS                                                                                                                             DIMMS
                              1A 3G 5E 7C 9i                 9i 7C 5E 3G 1A                                                                                          1A 3G 5E 7C 9i            9i 7C 5E 3G 1A

                                                                                         2       6                                                                                                                               2       6
                                 2D 4B 6H 8F                  8F 6H 4B 2D                                                                                             2D 4B 6H 8F               8F 6H 4B 2D
                                                   ONLINE                                                                                                                              ONLINE
                                           1       SPARE                     2                                                                                                 1       SPARE                    2
                                  PROC                                  PROC                                                                                           PROC                               PROC
                                                       MIRROR                                                                                                                          MIRROR
                              FANS                                                                                                                                   FANS
                                                                                         3       7                                                                                                                               3       7
                                   1           2         3      4        5       6                                                                                      1          2       3     4         5         6




                                                                                         4       8                                                                                                                               4       8




                                                                                                                                                   Imbalanced
                                                                                                                                                    Balanced
                                                                                                                                                   Cluster
                                                                                                                                                    Cluster




             1
                          1

                          2
                                       2
                                      OVER
                                      TEMP                                           1       5
                                                                                                                                HP
                                                                                                                             ProLiant
                                                                                                                             DL380G6
                                                                                                                                                      Heavy Load             POWER
                                                                                                                                                                             SUPPLY
                                                                                                                                                                                       1
                                                                                                                                                                                           POWER
                                                                                                                                                                                           SUPPLY
                                                                                                                                                                                                 1

                                                                                                                                                                                                 2
                                                                                                                                                                                                               2
                                                                                                                                                                                                               OVER
                                                                                                                                                                                                               TEMP

                                                                                                                                                                                                               INTER
                                                                                                                                                                                                               LOCK
                                                                                                                                                                                                                                     1       5
                                                                                                                                                                                                                                                       PL A Y ER
                                                                                                                                                                                                                                                                        HP
                                                                                                                                                                                                                                                                     ProLiant
                                                                                                                                                                                                                                                                     DL380G6


       POWER        POWER                                                                                                                                                    POWER CAP
       SUPPLY       SUPPLY             INTER                                                         PL A Y ER
                                                                                                                                                                                                              DIMMS
                                       LOCK                                                                                                                                 1A 3G 5E 7C 9i            9i 7C 5E 3G 1A
       POWER CAP
                                      DIMMS
      1A 3G 5E 7C 9i          9i 7C 5E 3G 1A                                                                                                                                                                                         2       6

                                                                                     2       6                                                                                  2D 4B 6H 8F               8F 6H 4B 2D
                                                                                                                                                                                               ONLINE
                                                                                                                                                                                       1       SPARE                     2
       2D 4B 6H 8F               8F 6H 4B 2D
                        ONLINE                                                                                                                                                     PROC                             PROC
                1                                  2                                                                                                                                            MIRROR
                        SPARE                                                                                                                                               FANS
        PROC                               PROC
                                                                                                                                                                                                                                     3       7
                        MIRROR                                                                                                                                                     1       2      3        4         5       6
      FANS
                                                                                     3       7
         1          2     3       4            5        6



                                                                                                                                                                                                                                     4       8

                                                                                     4       8




                                                                                                                                                      Lighter Load



102
DRS Scalability – Transactions per minute
(Higher the better)




                                                   Transactions per minute - DRS vs. No DRS                    No DRS     DRS
                           Already balanced
                           So, fewer gains
                                                                                            Higher gains (> 40%)
                                                                                            with more imbalance

                         140000
                         130000
                         120000
Transaction per minute




                         110000
                         100000
                          90000
                          80000
                          70000
                          60000
                          50000
                          40000
                                  2_2_2_2     3_2_2_1   3_3_1_1   3_3_2_0   4_2_1_1   4_2_2_0   4_3_1_0   4_4_0_0   5_3_0_0
                                                                       Run Scenario



       103
DRS Scalability – Application Response Time
(Lower the better)




                                                     Transaction Response Time - DRS vs. No DRS       No DRS   DRS

                                  70.00

                                  60.00
 Transaction Response time (ms)




                                  50.00


                                  40.00


                                  30.00

                                  20.00


                                  10.00


                                   0.00
                                          2_2_2_2 3_2_2_1 3_3_1_1 3_3_2_0 4_2_1_1 4_2_2_0 4_3_1_0 4_4_0_0 5_3_0_0
                                                                       Run Scenario




    104
ESX CPU Scheduling States

!  World states (simplified view):
 •  ready = ready-to-run but no physical CPU free
 •  run = currently active and running
 •  wait = blocked on I/O


!  Multi-CPU Virtual Machines => gang scheduling
 •  Co-run (latency to get vCPUs running)
 •  Co-stop (time in “stopped” state)




105
Ready Time (1 of 2)




!  VM state                                                  Run
 •  running (%used)
 •  waiting (%twait)
 •  ready to run (%ready)                                            Ready
                                                Wait

!  When does a VM go to “ready to run” state
 •  Guest wants to run or need to be woken up (to deliver an interrupt)
 •  CPU unavailable for scheduling the VM




106
Ready Time (2 of 2)

!  Factors affecting CPU availability
 •    CPU overcommitment
      •    Even Idle VMs have to be scheduled periodically to deliver timer interrupts
 •    NUMA constraints
      •    NUMA node locality gives better performance
 •    Burstiness – Inter-related workloads
      •    Tip: Use host anti affinity rules to place inter related workloads on different hosts
 •    Co-scheduling constraints
 •    CPU affinity restrictions


Fact: Ready time could exist even when CPU usage is low




107
Different Metrics for Different Reasons

!  Problem Indication
 •  Response Times, Latency contributors
 •  Queuing
!  Headroom Calculation
 •  Measure Utilization, predict headroom
!  Capacity Prediction
 •  If I have n users today, how much resource is needed in the future?
!  Service Level Prediction
 •  Predict the effect of response time changes
 •  Resource or Load changes




108
Myths and Fallacies

!  High CPU utilization is an indicator of a problem
 •  Not always: Single threaded compute intensive jobs operate quite happily at 100%
!  Less than 100% CPU means service is good (false)
 •  Not always: Bursty transaction oriented workloads follow littles-law curve, which limits
      effective utilization to a lower number




109
Consider these two workloads




5                                           5
4                                           4
3                                           3
2                                           2
1                                           1
0                                           0
      Period 1 Period 2 Period 3 Period 4       Period 1 Period 2 Period 3 Period 4


          Utilization is 25%                     Utilization is 25%
          Average Response time is high          Average Response time is low




110
The Buzen and Denning Method




111
Simple model of the Scheduler




112
CPU and Queuing Metrics

!  How much CPU is too much?
 •  It’s workload dependent.
 •  The only reliable metrics is to calculate how much time a workload waits in a queue for
      CPU
 •  This must be a measure of guest-level threads (not VMkernel)
!  Which is better – a faster CPU or more CPUs?
 •  Typical question in the physical world
 •  Question for us: will additional vCPUs help?




113
Relationship between Utilization and Response Time




114
Tools for diagnosing CPU performance: VI Client

!  Basic stuff
       •  CPU usage (percent)
       •  CPU ready time (but ready time by itself can be misleading)
!  Advanced stuff
       •  CPU wait time: time spent blocked on IO
       •  CPU extra time: time given to virtual machine over reservation
       •  CPU guaranteed: min CPU for virtual machine
!  Cluster-level statistics
       •  Percent of entitled resources delivered
       •  Utilization percent
       •  Effective CPU resources: MHz for cluster




 115
CPU capacity

! How do we know we are maxed out?
      •    If VMs are waiting for CPU time, maybe we need more CPUs.
      •    To measure this, look at CPU ready time.
! What exactly am I looking for?
      •    For each host, collect ready time for each VM
      •    Compute %ready time for each VM (ready time/sampling interval)
      •    If average %ready time > 50%, probe further
! Possible options
      •    DRS could help optimize resources
      •    Change share allocations to de-prioritize less important VMs
      •    More CPUs may be the solution




116
CPU capacity

                                                     (screenshot from VI Client)


  Some caveats on ready time
                                                 Used time
  !    Used time ~ ready time: may
       signal contention. However,
       might not be overcommitted
       due to workload variability
  !    In this example, we have
       periods of activity and idle                            Ready time ~ used time
       periods: CPU isn’t
       overcommitted all the time




                        Ready time < used time




117
VI Client CPU screenshot




      Note CPU milliseconds and percent are on the same chart but use different axes


118
Cluster-level information in the VI Client


                                                  !  Utilization %
                                                    describes available
                                                    capacity on hosts
                                                    (here: CPU usage
                                                    low, memory usage
                                                    medium)




                                             "    % Entitled resources
                                                  delivered: best if all
                                                  90-100+.




119
CPU performance analysis: esxtop

!  PCPU(%): CPU utilization
!  Per-group stats breakdown
 •  %USED: Utilization
 •  %RDY: Ready Time
 •  %TWAIT: Wait and idling time
!  Co-Scheduling stats (multi-CPU Virtual Machines)
 •  %CRUN: Co-run state
 •  %CSTOP: Co-stop state
!  Nmem: each member can consume 100% (expand to see breakdown)
!  Affinity
!  HTSharing




120
esxtop CPU screen (c)




  PCPU = Physical CPU
  CCPU = Console CPU (CPU 0)
  Press ‘f’ key to choose fields




121
New metrics in CPU screen




%LAT_C : %time the VM was not scheduled due to CPU resource issue

%LAT_M : %time the VM was not scheduled due to memory resource issue

%DMD : Moving CPU utilization average in the last one minute

EMIN : Minimum CPU resources in MHZ that the VM is guaranteed to get
when there is CPU contention




122
Troubleshooting CPU related problems

!  CPU constrained



                                       SMP VM




                                       High CPU
                                       utilization




                                       Both the
                                       virtual CPUs
                                       CPU
                                       constrained




 123
Troubleshooting CPU related problems

!  CPU limit




                                       Max
                                       Limited




                       CPU Limit       AMAX = -1 : Unlimited




124
Troubleshooting CPU related problems

!  CPU contention




                                VMs don’t get
 4 CPUs, all at     3 SMP VMs   to run all the   %ready
 100%                           time             accumulates




125
Further ready time examination




      High Ready Time
                                   High MLMTD: there is a limit on this VM…

      "High ready time not always because of overcommitment
      "When you see high ready time, double-check if limit is set

126
Troubleshooting CPU related problems

!  SMP VM running UP HAL/Kernel




                           It is also possible that you are running a single
                           threaded application in a SMP VM
      vCPU 1 not used by
      the VM




127
Troubleshooting CPU related problems

!  High CPU activity in the Service Console



                                              Some process in the
                                              service console is
                                              hogging CPU




                                               Not much activity in
                                               the service console




                                               VMKernel is doing
                                               some activity on
                                               behalf of the console
                                               OS - cloning in this
                                               case




 128
VI Client and Ready Time




                                         Used time
"   Usedtime ~ ready time: may
signal contention. However,
might not be overcommitted due
to workload variability
"   In
    this example, we have
periods of activity and idle
periods: CPU isn’t
overcommitted all the time
                                                     Ready time
                                                     ~ used time




                Ready time < used time




129
CPU Performance

!  vSphere supports eight virtual processors per VM
 •  Use UP VMs for single-threaded applications
      •  Use UP HAL or UP kernel
 •  For SMP VMs, configure only as many VCPUs as needed
 •  Unused VCPUs in SMP VMs:
      •  Impose unnecessary scheduling constraints on ESX Server
      •  Waste system resources (idle looping, process migrations, etc.)




130
CPU Performance

!  For threads/processes that migrate often between VCPUs
 •  Pin the guest thread/process to a particular VCPU
 •  Pinning guest VCPUs to PCPUs rarely needed
!  Guest OS timer interrupt rate
 •  Most Windows, Linux 2.4: 100 Hz
 •  Most Linux 2.6: 1000 Hz
 •  Recent Linux: 250 Hz
 •  Upgrade to newer distro, or rebuild kernel with lower rate




131
Performance Tips

!  Idling VMs
  •  Consider overhead of delivering guest timer interrupts
  •  Lowering guest periodic timer interrupt rate should help
!  VM CPU Affinity
  •  Constrains the scheduler: can cause imbalances
  •  Reservations may not be met – use on your own risk
!  Multi-core processors with shared caches
  •  Performance characteristics heavily depend on the workload
  •  Constructive/destructive cache interference




 132
Performance Tips

!  SMP VMs
 •  Use as few virtual CPUs as possible
 •  Consider timer interrupt overhead of idling CPUs
 •  Co-scheduling overhead increases with more VCPUs
 •  Use SMP kernels in SMP VMs
 •  Pinning guest threads to VCPUs may help to reduce migrations for some workloads
!  Interactive Workloads (VDI, etc)
 •  Assign more shares, increase reservations to achieve faster response times




133
vSphere Scheduler and HT

!  Intel Hyper-threading provides the   The default: more CPU
 appearance of two logical cores
 for each physical core
 •  They are somewhat faster than one
      core but not as fast as two
!  Threads sharing cores less CPU
 than threads with their own cores              v    v            v      v
!  Threads accessing common                     v    v            v      v
 memory will benefit from running
 on the same socket
                                                         Physical core
!  So, 5+ vCPU VMs must choose
 between more CPU and faster                     v       Running vCPU
 memory




134
Optimizing the Scheduler for Large VMs

!  On some virtual machines,             preferHT
 memory latency is more important
 than CPU
!  If VM has more vCPUs than there
 are cores in a single socket, it will
 run faster if forced to a single
 socket
                                             v       v
                                                 v       v
!  Done with Advanced Settings:              v       v
 NUMA.preferHT                                   v       v


                                                         Hyper-threaded physical core

                                         v           Running vCPU




135
MEMORY




136
Virtual Memory



      !  Creates uniform memory address space
                                                                       “virtual” memory
       •  Operating system maps application virtual addresses to
          physical addresses
       •  Gives operating system memory management abilities           guest
          transparent to application
                                                                     “physical” memory


                                                                   hypervisor
      Hypervisor adds extra level of indirection
         "   Maps guest’s physical addresses to machine              “machine” memory
             addresses
         "   Gives hypervisor memory management abilities
             transparent to guest




137
Virtual Memory




          “virtual” memory                    guest
                                               “virtual”
                             Application       memory

          guest                                 App




        “physical” memory    Operating        “physical”
                             System            memory
                                           hypervisor

                                                  OS
      hypervisor

                                             “machine”
        “machine” memory     Hypervisor       memory

                                             Hypervisor




138
Application Memory Management

 •  Starts with no memory
 •  Allocates memory through syscall to operating
      system
 •  Often frees memory voluntarily through syscall
 •  Explicit memory allocation interface with         App
      operating system



                                                       OS




                                                     Hypervi
                                                       sor




139
Operating System Memory Management

 •  Assumes it owns all physical memory
 •  No memory allocation interface with
      hardware
      •  Does not explicitly allocate or free physical
        memory
 •  Defines semantics of “allocated” and “free”            App
      memory
      •  Maintains “free” list and “allocated” lists of
         physical memory
      •  Memory is “free” or “allocated” depending on
         which list it resides
                                                            OS




                                                          Hypervi
                                                            sor




140
Hypervisor Memory Management

 •  Very similar to operating system memory
      management
      •  Assumes it owns all machine memory
      •  No memory allocation interface with hardware
      •  Maintains lists of “free” and “allocated” memory
                                                              App




                                                               OS




                                                            Hypervis
                                                               or




141
VM Memory Allocation

 •  VM starts with no physical memory
      allocated to it
 •  Physical memory allocated on demand
    •  Guest OS will not explicitly allocate
    •  Allocate on first VM access to           App
       memory (read or write)



                                                OS




                                               Hyperv
                                                isor




142
VM Memory Reclamation

•  Guest physical memory not “freed” in typical sense
  •  Guest OS moves memory to its “free” list
  •  Data in “freed” memory may
   not have been modified

                                                                 App




                                                     Guest
                                                    free list     OS
        "    Hypervisor isn’t aware when
             guest frees memory
             "   Freed memory state unchanged
                                                                Hypervi
             "   No access to guest’s “free” list                 sor

             "   Unsure when to reclaim “freed”
                 guest memory



  143
VM Memory Reclamation Cont’d



!  Guest OS (inside the VM)
 •  Allocates and frees…
 •  And allocates and frees…           Inside
                                       the VM           App
 •  And allocates and frees…
                                                       VM


       "    VM                              Guest
                                           free list        OS
            "   Allocates…
            "   And allocates…
            "   And allocates…                         Hyperv
                                                        isor

       "    Hypervisor needs some way of
            reclaiming memory!



 144
Memory Resource Management

!  ESX must balance memory usage
 •  Page sharing to reduce memory footprint of Virtual Machines
 •  Ballooning to relieve memory pressure in a graceful way
 •  Host swapping to relieve memory pressure when ballooning insufficient
 •  Compression to relieve memory pressure without host-level swapping


!  ESX allows overcommitment of memory
 •  Sum of configured memory sizes of virtual machines can be greater than physical
      memory if working sets fit


!  Memory also has limits, shares, and reservations

!  Host swapping can cause performance degradation




145
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial
VMware Performance for Gurus - A Tutorial

More Related Content

What's hot

2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...
2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...
2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...PMI Lévis-Québec
 
Dell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesDell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesAndrew McDaniel
 
Objectivity/DB: A Multipurpose NoSQL Database
Objectivity/DB: A Multipurpose NoSQL DatabaseObjectivity/DB: A Multipurpose NoSQL Database
Objectivity/DB: A Multipurpose NoSQL DatabaseInfiniteGraph
 
chap 18 multicore computers
chap 18 multicore computers chap 18 multicore computers
chap 18 multicore computers Sher Shah Merkhel
 
Ahp & House Of Quality
Ahp & House Of QualityAhp & House Of Quality
Ahp & House Of QualityEngin Çakir
 
Managing ESXi - Tools and Techniques
Managing ESXi - Tools and TechniquesManaging ESXi - Tools and Techniques
Managing ESXi - Tools and TechniquesChristopher Janoch
 

What's hot (7)

2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...
2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...
2016-04-13 Radenko Corovic TI -Estimation de projets informatiques traditionn...
 
Dell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesDell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready Nodes
 
Objectivity/DB: A Multipurpose NoSQL Database
Objectivity/DB: A Multipurpose NoSQL DatabaseObjectivity/DB: A Multipurpose NoSQL Database
Objectivity/DB: A Multipurpose NoSQL Database
 
chap 18 multicore computers
chap 18 multicore computers chap 18 multicore computers
chap 18 multicore computers
 
Notes on NUMA architecture
Notes on NUMA architectureNotes on NUMA architecture
Notes on NUMA architecture
 
Ahp & House Of Quality
Ahp & House Of QualityAhp & House Of Quality
Ahp & House Of Quality
 
Managing ESXi - Tools and Techniques
Managing ESXi - Tools and TechniquesManaging ESXi - Tools and Techniques
Managing ESXi - Tools and Techniques
 

Viewers also liked

VMware Performance Troubleshooting
VMware Performance TroubleshootingVMware Performance Troubleshooting
VMware Performance Troubleshootingglbsolutions
 
VMware Advance Troubleshooting Workshop - Day 6
VMware Advance Troubleshooting Workshop - Day 6VMware Advance Troubleshooting Workshop - Day 6
VMware Advance Troubleshooting Workshop - Day 6Vepsun Technologies
 
VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4Vepsun Technologies
 
VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2Vepsun Technologies
 
VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5Vepsun Technologies
 
VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3Vepsun Technologies
 
Developing a Progressive Mobile Strategy
Developing a Progressive Mobile StrategyDeveloping a Progressive Mobile Strategy
Developing a Progressive Mobile StrategyDave Olsen
 
Wi Vi technology
Wi Vi technology Wi Vi technology
Wi Vi technology Liju Thomas
 
IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...
IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...
IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...Walnut Knowledge Solutions
 
Basic Principles Of Local Flap In Plastic Surgery
Basic Principles Of Local Flap In Plastic SurgeryBasic Principles Of Local Flap In Plastic Surgery
Basic Principles Of Local Flap In Plastic SurgeryShamendra Sahu
 
Decision making between anterior skull base & lateral skull base
Decision making between anterior skull base & lateral skull baseDecision making between anterior skull base & lateral skull base
Decision making between anterior skull base & lateral skull baseMurali Chand Nallamothu
 
Leading Without Seeing: managing distributed teams
Leading Without Seeing: managing distributed teamsLeading Without Seeing: managing distributed teams
Leading Without Seeing: managing distributed teamsShane Pearlman
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentationaleyeldean
 
How To Become... LORD OF THE SLIDES
How To Become... LORD OF THE SLIDESHow To Become... LORD OF THE SLIDES
How To Become... LORD OF THE SLIDESPaul Brown
 
SAP FI - Account Payable (AP)
SAP FI - Account Payable (AP)SAP FI - Account Payable (AP)
SAP FI - Account Payable (AP)saiprasadbagrecha
 
Thai tech startup ecosystem report 2017
Thai tech startup ecosystem report 2017Thai tech startup ecosystem report 2017
Thai tech startup ecosystem report 2017Techsauce Media
 

Viewers also liked (20)

VMware Performance Troubleshooting
VMware Performance TroubleshootingVMware Performance Troubleshooting
VMware Performance Troubleshooting
 
VMware Advance Troubleshooting Workshop - Day 6
VMware Advance Troubleshooting Workshop - Day 6VMware Advance Troubleshooting Workshop - Day 6
VMware Advance Troubleshooting Workshop - Day 6
 
VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4
 
VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2VMware Advance Troubleshooting Workshop - Day 2
VMware Advance Troubleshooting Workshop - Day 2
 
VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5
 
VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3
 
Developing a Progressive Mobile Strategy
Developing a Progressive Mobile StrategyDeveloping a Progressive Mobile Strategy
Developing a Progressive Mobile Strategy
 
Wi Vi technology
Wi Vi technology Wi Vi technology
Wi Vi technology
 
IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...
IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...
IIT - Bombay - Open General Quiz 2.0 - Finals (with Written Round and Long Vi...
 
Basic Principles Of Local Flap In Plastic Surgery
Basic Principles Of Local Flap In Plastic SurgeryBasic Principles Of Local Flap In Plastic Surgery
Basic Principles Of Local Flap In Plastic Surgery
 
Call flows
Call flowsCall flows
Call flows
 
Decision making between anterior skull base & lateral skull base
Decision making between anterior skull base & lateral skull baseDecision making between anterior skull base & lateral skull base
Decision making between anterior skull base & lateral skull base
 
Leading Without Seeing: managing distributed teams
Leading Without Seeing: managing distributed teamsLeading Without Seeing: managing distributed teams
Leading Without Seeing: managing distributed teams
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentation
 
Benchmarking
BenchmarkingBenchmarking
Benchmarking
 
Vietnam E-commerce Report 2016
Vietnam E-commerce Report 2016 Vietnam E-commerce Report 2016
Vietnam E-commerce Report 2016
 
How To Become... LORD OF THE SLIDES
How To Become... LORD OF THE SLIDESHow To Become... LORD OF THE SLIDES
How To Become... LORD OF THE SLIDES
 
SAP FI - Account Payable (AP)
SAP FI - Account Payable (AP)SAP FI - Account Payable (AP)
SAP FI - Account Payable (AP)
 
Thai tech startup ecosystem report 2017
Thai tech startup ecosystem report 2017Thai tech startup ecosystem report 2017
Thai tech startup ecosystem report 2017
 
Mri brain anatomy Dr Muhammad Bin Zulfiqar
Mri brain anatomy Dr Muhammad Bin ZulfiqarMri brain anatomy Dr Muhammad Bin Zulfiqar
Mri brain anatomy Dr Muhammad Bin Zulfiqar
 

Similar to VMware Performance for Gurus - A Tutorial

Apache Hadoop on Virtual Machines
Apache Hadoop on Virtual MachinesApache Hadoop on Virtual Machines
Apache Hadoop on Virtual MachinesDataWorks Summit
 
Virtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMwareVirtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMwareDatapath Consulting
 
Openstack Diablo Survey
Openstack Diablo SurveyOpenstack Diablo Survey
Openstack Diablo SurveyPjack Chen
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform K.Mohamed Faizal
 
Virtualization: Hyper-V, VMM, App-V and MED-V.
Virtualization: Hyper-V, VMM, App-V and MED-V.Virtualization: Hyper-V, VMM, App-V and MED-V.
Virtualization: Hyper-V, VMM, App-V and MED-V.Microsoft Iceland
 
CloudStack Architecture Future
CloudStack Architecture FutureCloudStack Architecture Future
CloudStack Architecture FutureKimihiko Kitase
 
Best Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopBest Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopDataWorks Summit
 
分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化
分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化
分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化ITband
 
Citrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStack
Citrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStackCitrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStack
Citrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStackRightScale
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategydrmarcustillett
 
Scvmm 2012 (maarten wijsman)
Scvmm 2012 (maarten wijsman)Scvmm 2012 (maarten wijsman)
Scvmm 2012 (maarten wijsman)hypervnu
 
SANsymphony V
SANsymphony VSANsymphony V
SANsymphony VTTEC
 
Virtualization for Development
Virtualization for DevelopmentVirtualization for Development
Virtualization for Developmentelliando dias
 
IT FUTURE 2011 - Fujitsu ror orchestration
IT FUTURE 2011 - Fujitsu ror orchestrationIT FUTURE 2011 - Fujitsu ror orchestration
IT FUTURE 2011 - Fujitsu ror orchestrationFujitsu France
 
Exploration of eucalyptus_v2.0
Exploration of eucalyptus_v2.0Exploration of eucalyptus_v2.0
Exploration of eucalyptus_v2.0huangwenjun310
 

Similar to VMware Performance for Gurus - A Tutorial (20)

Apache Hadoop on Virtual Machines
Apache Hadoop on Virtual MachinesApache Hadoop on Virtual Machines
Apache Hadoop on Virtual Machines
 
Virtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMwareVirtualization 101: Everything You Need To Know To Get Started With VMware
Virtualization 101: Everything You Need To Know To Get Started With VMware
 
Openstack Diablo Survey
Openstack Diablo SurveyOpenstack Diablo Survey
Openstack Diablo Survey
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform
 
Virtualization: Hyper-V, VMM, App-V and MED-V.
Virtualization: Hyper-V, VMM, App-V and MED-V.Virtualization: Hyper-V, VMM, App-V and MED-V.
Virtualization: Hyper-V, VMM, App-V and MED-V.
 
CloudStack Architecture Future
CloudStack Architecture FutureCloudStack Architecture Future
CloudStack Architecture Future
 
Net Optics' Virtualization Solutions Deployment Case Study
Net Optics' Virtualization Solutions Deployment Case StudyNet Optics' Virtualization Solutions Deployment Case Study
Net Optics' Virtualization Solutions Deployment Case Study
 
Best Practices for Virtualizing Hadoop
Best Practices for Virtualizing HadoopBest Practices for Virtualizing Hadoop
Best Practices for Virtualizing Hadoop
 
分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化
分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化
分会场二深入分析Veritas cluster server和storage foundation在aix高可用以及灾难恢复环境下如何对存储管理进行优化
 
Citrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStack
Citrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStackCitrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStack
Citrix CloudStack - Build Your Own Scalable Infrastructure Cloud with CloudStack
 
An Introduction to Azure IaaS
An Introduction to Azure IaaSAn Introduction to Azure IaaS
An Introduction to Azure IaaS
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
 
Scvmm 2012 (maarten wijsman)
Scvmm 2012 (maarten wijsman)Scvmm 2012 (maarten wijsman)
Scvmm 2012 (maarten wijsman)
 
SANsymphony V
SANsymphony VSANsymphony V
SANsymphony V
 
Virtualization for Development
Virtualization for DevelopmentVirtualization for Development
Virtualization for Development
 
What is a virtual tap?
What is a virtual tap?What is a virtual tap?
What is a virtual tap?
 
IT FUTURE 2011 - Fujitsu ror orchestration
IT FUTURE 2011 - Fujitsu ror orchestrationIT FUTURE 2011 - Fujitsu ror orchestration
IT FUTURE 2011 - Fujitsu ror orchestration
 
Exploration of eucalyptus_v2.0
Exploration of eucalyptus_v2.0Exploration of eucalyptus_v2.0
Exploration of eucalyptus_v2.0
 
Cloud Computing Tools
Cloud Computing ToolsCloud Computing Tools
Cloud Computing Tools
 
Презентация RDS & App-V, VDI
Презентация RDS & App-V, VDIПрезентация RDS & App-V, VDI
Презентация RDS & App-V, VDI
 

More from Richard McDougall

Is your cloud ready for Big Data? Strata NY 2013
Is your cloud ready for Big Data? Strata NY 2013Is your cloud ready for Big Data? Strata NY 2013
Is your cloud ready for Big Data? Strata NY 2013Richard McDougall
 
Big Data/Hadoop Infrastructure Considerations
Big Data/Hadoop Infrastructure ConsiderationsBig Data/Hadoop Infrastructure Considerations
Big Data/Hadoop Infrastructure ConsiderationsRichard McDougall
 
Building Big Data Applications
Building Big Data ApplicationsBuilding Big Data Applications
Building Big Data ApplicationsRichard McDougall
 
Apachecon Euro 2012: Elastic, Multi-tenant Hadoop on Demand
Apachecon Euro 2012: Elastic, Multi-tenant Hadoop on DemandApachecon Euro 2012: Elastic, Multi-tenant Hadoop on Demand
Apachecon Euro 2012: Elastic, Multi-tenant Hadoop on DemandRichard McDougall
 
Solaris Internals Preso circa 2009
Solaris Internals Preso circa 2009Solaris Internals Preso circa 2009
Solaris Internals Preso circa 2009Richard McDougall
 
Inside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworldInside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworldRichard McDougall
 
Virtualizing Oracle Databases with VMware
Virtualizing Oracle Databases with VMwareVirtualizing Oracle Databases with VMware
Virtualizing Oracle Databases with VMwareRichard McDougall
 
Virtualization Primer for Java Developers
Virtualization Primer for Java DevelopersVirtualization Primer for Java Developers
Virtualization Primer for Java DevelopersRichard McDougall
 
Architecting Virtualized Infrastructure for Big Data
Architecting Virtualized Infrastructure for Big DataArchitecting Virtualized Infrastructure for Big Data
Architecting Virtualized Infrastructure for Big DataRichard McDougall
 

More from Richard McDougall (13)

Making of the Burner Board
Making of the Burner BoardMaking of the Burner Board
Making of the Burner Board
 
Is your cloud ready for Big Data? Strata NY 2013
Is your cloud ready for Big Data? Strata NY 2013Is your cloud ready for Big Data? Strata NY 2013
Is your cloud ready for Big Data? Strata NY 2013
 
Big Data/Hadoop Infrastructure Considerations
Big Data/Hadoop Infrastructure ConsiderationsBig Data/Hadoop Infrastructure Considerations
Big Data/Hadoop Infrastructure Considerations
 
Building Big Data Applications
Building Big Data ApplicationsBuilding Big Data Applications
Building Big Data Applications
 
Hadoop I/O Analysis
Hadoop I/O AnalysisHadoop I/O Analysis
Hadoop I/O Analysis
 
Apachecon Euro 2012: Elastic, Multi-tenant Hadoop on Demand
Apachecon Euro 2012: Elastic, Multi-tenant Hadoop on DemandApachecon Euro 2012: Elastic, Multi-tenant Hadoop on Demand
Apachecon Euro 2012: Elastic, Multi-tenant Hadoop on Demand
 
Solaris Internals Preso circa 2009
Solaris Internals Preso circa 2009Solaris Internals Preso circa 2009
Solaris Internals Preso circa 2009
 
Inside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworldInside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworld
 
Hadoop on Virtual Machines
Hadoop on Virtual MachinesHadoop on Virtual Machines
Hadoop on Virtual Machines
 
Virtualizing Oracle Databases with VMware
Virtualizing Oracle Databases with VMwareVirtualizing Oracle Databases with VMware
Virtualizing Oracle Databases with VMware
 
Virtualization Primer for Java Developers
Virtualization Primer for Java DevelopersVirtualization Primer for Java Developers
Virtualization Primer for Java Developers
 
Hadoop on VMware
Hadoop on VMwareHadoop on VMware
Hadoop on VMware
 
Architecting Virtualized Infrastructure for Big Data
Architecting Virtualized Infrastructure for Big DataArchitecting Virtualized Infrastructure for Big Data
Architecting Virtualized Infrastructure for Big Data
 

Recently uploaded

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

VMware Performance for Gurus - A Tutorial

  • 1. VMware Performance for Gurus Richard McDougall Principal Engineer, VMware, Inc rmc@vmware.com @richardmcdougll Usenix Tutorial, December, 2010 © 2010 VMware Inc. All rights reserved
  • 2. Abstract !  This class teaches the fundamentals of performance and observability for vSphere virtualization technology. !  The objective of the class is to learn how to be a practitioner of performance diagnosis and capacity planning with vSphere. !  We use a combination of introductory vSphere internals and performance analysis techniques to expose what’s going on under the covers, learn how to interpret metrics, and how to triage performance problems. !  We’ll learn how to interpret load measurements, to perform accurate capacity planning. 2
  • 3. Credits !  Thank you to the many contributors of slides and drawings, including: •  Ravi Soundararajan – VC and esxtop •  Andrei Dorofeev – Scheduling •  Patrick Tullmann – Architecture •  Bing Tsai – Storage •  Howie Xu - Networking •  Scott Drummonds – Performance •  Devaki Kulkarni - Tuning •  Jeff Buell – Tuning •  Irfan Ahmad – Storage & IO •  Krishna Raj Raja – Performance •  Kit Colbert – Memory •  Ole Agesen – Monitor Overview •  Sreekanth Setty - Networking •  Ajay Gulati - Storage •  Wei Zhang - Networking •  Amar Padmanabhan – Networking 3
  • 4. Agenda/Topics !  Introduction !  Performance Monitoring !  CPU !  Memory !  I/O and Storage !  Networking !  Applications 4
  • 5. INTRODUCTION TO VIRTUALIZATION AND VMWARE VI/ESX 5
  • 6. Traditional Architecture Operating system performs various roles •  Application Runtime Libraries •  Resource Management (CPU, Memory etc) •  Hardware + Driver management " Performance & Scalability of the OS was paramount " Performance Observability tools are a feature of the OS 6
  • 7. The Virtualized World The OS takes on the role of a Library, Virtualization layer grows Application Run-time Libraries and Services Application-Level Service Management Application-decomposition of performance Run-time or Deployment OS Local Scheduling and Memory Management Local File System Infrastructure OS (Virtualization Layer) Scheduling Resource Management Device Drivers I/O Stack File System Volume Management Network QoS Firewall Power Management Fault Management Performance Observability of System Resources 7
  • 8. vShere Platform Delegated Administration Developers Application Desktop DBAs get their QA Owners Managers Own per-DB Sandbox Test/Dev Pre-Production Desktop Rapid, Templated Process DB Provisioning Automation/Control Resource Management Distributed Availability, DR Virtualization DRS HA DR Virtual, Portable Distributed DB Instances Management Hypervisor High Performance Scalable Consolidation Physical Storage Virtualization 8
  • 9. Hypervisor Architectures Virtual Virtual Virtual Virtual Virtual General Dom0 (Linux) Machine Machine Purpose OS or Machine Machine Machine Parent VM Drivers Drivers (Windows) Drivers Drivers Drivers Drivers Drivers Dom0 or Parent Xen/Viridian Partition Model Vmware ESX Very Small Hypervisor ESX Server General purpose OS in parent partition for I/O and management "   Small Hypervisor < 24 mb "   Specialized Virtualization Kernel All I/O driver traffic going thru parent OS "   Direct driver model Extra Latency, Less control of I/O "   Management VMs " Remote CLI, CIM, VI API 9
  • 10. VMware ESX Architecture CPU is controlled by scheduler and virtualized by monitor File TCP/IP System Monitor supports: Guest Guest ! BT (Binary Translation) ! HW (Hardware assist) ! PV (Paravirtualization) Monitor Monitor (BT, HW, PV) Virtual NIC Virtual SCSI Memory is allocated by the VMkernel Memory Virtual Switch File System VMkernel and virtualized by the Scheduler Allocator monitor NIC Drivers I/O Drivers Network and I/O devices are emulated and proxied though Physical Hardware native device drivers 10
  • 11. Inside the Monitor: Classical Instruction Virtualization Trap-and-emulate !  Nonvirtualized (“native”) system •  OS runs in privileged mode •  OS “owns” the hardware •  Application code has less privilege Apps Ring 3 OS Ring 0 !  Virtualized •  VMM most privileged (for isolation) •  Classical “ring compression” or “de-privileging” •  Run guest OS kernel in Ring 1 •  Privileged instructions trap; emulated by VMM Apps Ring 3 •  But: does not work for x86 (lack of traps) Guest OS Ring 1 VMM Ring 0 11
  • 12. Classical VM performance !  Native speed except for traps •  Overhead = trap frequency * average trap cost !  Trap sources: •  Privileged instructions •  Page table updates (to support memory virtualization) •  Memory-mapped devices !  Back-of-the-envelope numbers: •  Trap cost is high on deeply pipelined CPUs: ~1000 cycles •  Trap frequency is high for “tough” workloads: 50 kHz or greater •  Bottom line: substantial overhead 12
  • 13. Binary Translation of Guest Code !  Translate guest kernel code !  Replace privileged instrs with safe “equivalent” instruction sequences !  No need for traps !  BT is an extremely powerful technology •  Permits any unmodified x86 OS to run in a VM •  Can virtualize any instruction set 13
  • 14. BT Mechanics !  Each translator invocation •  Consume one input basic block (guest code) •  Produce one output basic block !  Store output in translation cache •  Future reuse •  Amortize translation costs •  Guest-transparent: no patching “in place” input translated basic block basic block Guest translator Translation cache 14
  • 15. Combining BT and Direct Execution Direct Execution (user mode guest code) Faults, syscalls interrupts VMM IRET, sysret Binary Translation (kernel mode guest code) 15
  • 16. Performance of a BT-based VMM !  Costs •  Running the translator •  Path lengthening: output is sometimes longer than input •  System call overheads: DE/BT transition !  Benefits •  Avoid costly traps •  Most instructions need no change (“identical” translation) •  Adaptation: adjust translation in response to guest behavior •  Online profile-guided optimization •  User-mode code runs at full speed (“direct execution”) 16
  • 17. Speeding Up Virtualization Technologies for optimizing performance Privileged instruction Binary Translation, Paravirt. CPU virtualization Hardware Virtualization Assist Binary translation Paravirt. Memory Memory virtualization Hardware Guest Page Tables Device and I/O Paravirtualized Devices virtualization Stateless offload, Direct Mapped I/O 17
  • 18. Multi-mode Monitors Guest Guest Guest There are different types of Monitors for different Workloads and CPU types Binary Para- Hardware VMware ESX provides a Translation Virtualization Assist dynamic framework to allow the best Monitor for the Virtual NIC Virtual SCSI workload Memory VMkernel Virtual Switch File System Scheduler Allocator Let’s look at some of the charactersitics of the NIC Drivers I/O Drivers different monitors Physical Hardware 18
  • 19. Virtualization Hardware Assist More recent CPUs have features to reduce some of the overhead at the monitor level 1st Gen: Intel VT and AMD-V Guest •  doesn’t remove all virtualization overheads: scheduling, memory management and I/O are still virtualized with a software layer Monitor 2ndGen: AMD Barcelona RVI and Intel EPT Virtual NIC Virtual SCSI •  Helps with memory virtualization Memory overheads VMkernel Virtual Switch File System Scheduler Allocator •  Most workloads run with less than 10% overhead •  EPT provides performance gains of up to NIC Drivers I/O Drivers 30% for MMU intensive benchmarks (Kernel Compile, Citrix etc) •  EPT provides performance gains of up to 500% for MMU intensive micro- benchmarks •  Far fewer “outlier” workloads Physical Hardware 19
  • 20. vSphere 4 Monitor Enhancements !  8-VCPU virtual Machines •  Impressive scalability from 1-8 vCPUs !  Monitor type chosen based on Guest OS and CPU model •  UI option to override the default !  Support for upcoming processors with hardware memory virtualization •  Rapid Virtualization Indexing from AMD already supported •  Extended Page Table from Intel •  Improvements to software memory virtualization !  Better Large Page Support (Unique to VMware ESX) •  (Includes enhancements in VMkernel) 20
  • 21. Intel VT-x / AMD-V: 1st Generation HW Support !  Key feature: root vs. guest CPU mode •  VMM executes in root mode Apps Ring 3 Guest mode •  Guest (OS, apps) execute in guest mode Guest OS !  VMM and Guest run as Ring 0 “co-routines” Root mode VM VM •  VM enter exit enter •  Guest runs VMM •  A while later: VM exit •  VMM runs •  ... 21
  • 22. How VMM Controls Guest Execution !  Hardware-defined structure •  Intel: VMCS (virtual machine control structure) •  AMD: VMCB (virtual machine control block) !  VMCB/VMCS contains •  Guest state •  Control bits that define conditions for exit •  Exit on IN, OUT, CPUID, ... VMM Guest VMCB •  Exit on write to control register CR3 physical CPU •  Exit on page fault, pending interrupt, ... •  VMM uses control bits to “confine” and observe guest 22
  • 23. Performance of a VT-x/AMD-V Based VMM !  VMM only intervenes to handle exits !  Same performance equation as classical trap-and-emulate: •  overhead = exit frequency * average exit cost !  VMCB/VMCS can avoid simple exits (e.g., enable/disable interrupts), but many exits remain •  Page table updates •  Context switches •  In/out •  Interrupts 23
  • 24. Qualitative Comparison of BT and VT-x/AMD-V !  BT loses on: •  system calls !  VT-x/AMD-V loses on: •  translator overheads •  exits (costlier than “callouts”) •  path lengthening •  no adaptation (cannot elim. exits) •  indirect control flow •  page table updates !  BT wins on: •  memory-mapped I/O •  page table updates (adaptation) •  IN/OUT instructions •  memory-mapped I/O (adapt.) !  VT-x/AMD-V wins on: •  IN/OUT instructions •  system calls •  no traps for priv. instructions •  almost all code runs “directly” 24
  • 25. Qualitative Comparison of BT and VT-x/AMD-V !  BT loses on: •  system calls !  VT-x/AMD-V loses on: •  translator overheads •  exits (costlier than “callouts”) •  path lengthening •  no adaptation (cannot elim. exits) •  indirect control flow •  page table updates !  BT wins on: •  memory-mapped I/O •  page table updates (adaptation) •  IN/OUT instructions •  memory-mapped I/O (adapt.) !  VT-x/AMD-V wins on: •  IN/OUT instructions •  system calls •  no traps for priv. instructions •  almost all code runs “directly” 25
  • 26. Qualitative Comparison of BT and VT-x/AMD-V !  BT loses on: •  system calls !  VT-x/AMD-V loses on: •  translator overheads •  exits (costlier than “callouts”) •  path lengthening •  no adaptation (cannot elim. exits) •  indirect control flow •  page table updates !  BT wins on: •  memory-mapped I/O •  page table updates (adaptation) •  IN/OUT instructions •  memory-mapped I/O (adapt.) !  VT-x/AMD-V wins on: •  IN/OUT instructions •  system calls •  no traps for priv. instructions •  almost all code runs “directly” 26
  • 27. VMexit Latencies are getting lower… Intel Architecture VMexit Latencies 1600 1400 1200 Latency (cycles) 1000 800 600 400 200 0 Prescott Cedar Mill Merom Penryn Nehalem (Estimated) !  VMexit performance is critical to hardware assist-based virtualization !  In additional to generational performance improvements, Intel is improving VMexit latencies 27
  • 28. Virtual Memory in a Native OS Process 1 Process 2 0 4GB 0 4GB Virtual VA Memory Physical PA Memory !  Applications see contiguous virtual address space, not physical memory !  OS defines VA -> PA mapping •  Usually at 4 KB granularity: a page at a time •  Mappings are stored in page tables 28
  • 29. Virtual Memory (ctd) Process 1 Process 2 0 4GB 0 4GB Virtual VA Memory Physical PA Memory !  Applications see contiguous virtual address space, not physical memory !  OS defines VA -> PA mapping TLB VA→PA mapping •  Usually at 4 KB granularity VA PA •  Mappings are stored in page tables !  HW memory management unit (MMU) %cr3 ... •  Page table walker TLB fill hardware •  TLB (translation look-aside buffer) 29
  • 30. Virtualizing Virtual Memory VM 1 VM 2 Process 1 Process 2 Process 1 Process 2 Virtual VA Memory Physical PA Memory Machine MA Memory !  To run multiple VMs on a single system, another level of memory virtualization must be done •  Guest OS still controls virtual to physical mapping: VA -> PA •  Guest OS has no direct access to machine memory (to enforce isolation) !  VMM maps guest physical memory to actual machine memory: PA -> MA 30
  • 31. Virtualizing Virtual Memory Shadow Page Tables VM 1 VM 2 Process 1 Process 2 Process 1 Process 2 Virtual VA Memory Physical PA Memory Machine MA Memory !  VMM builds “shadow page tables” to accelerate the mappings •  Shadow directly maps VA -> MA •  Can avoid doing two levels of translation on every access •  TLB caches VA->MA mapping •  Leverage hardware walker for TLB fills (walking shadows) •  When guest changes VA -> PA, the VMM updates shadow page tables 31
  • 32. 3-way Performance Trade-off in Shadow Page Tables !  1. Trace costs •  VMM must intercept Guest writes to primary page tables •  Propagate change into shadow page table (or invalidate) !  2. Page fault costs •  VMM must intercept page faults •  Validate shadow page table entry (hidden page fault), or forward fault to Guest (true page fault) !  3. Context switch costs •  VMM must intercept CR3 writes •  Activate new set of shadow page tables !  Finding good trade-off is crucial for performance !  VMware has 9 years of experience here 32
  • 33. !  VMware currently supports and Scaling to Wide vSMP Shadow Page Tables up to 4-way vSMP !  Problems lurk in scaling to higher numbers of vCPUs •  Per-vcpu shadow page tables •  High memory overhead •  Process migration costs (cold shadows/lack of shadows) •  Remote trace events costlier than local events •  vcpu-shared shadow page tables •  Higher synchronization costs in VMM !  Can already see this in extreme cases •  forkwait is slower on vSMP than a uniprocessor VM 33
  • 34. 2nd Generation Hardware Assist Nested/Extended Page Tables VA→PA mapping Guest PT ptr ... TLB VA MA TLB fill guest hardware VMM Nested PT ptr PA→MA mapping 34
  • 35. Analysis of NPT !  MMU composes VA->PA and PA->MA mappings on the fly at TLB fill time !  Benefits •  Significant reduction in “exit frequency” •  No trace faults (primary page table modifications as fast as native) •  Page faults require no exits •  Context switches require no exits •  No shadow page table memory overhead •  Better scalability to wider vSMP •  Aligns with multi-core: performance through parallelism !  Costs •  More expensive TLB misses: O(n2) cost for page table walk, where n is the depth of the page table tree 35
  • 36. Analysis of NPT !  MMU composes VA->PA and PA->MA mappings on the fly at TLB fill time !  Benefits •  Significant reduction in “exit frequency” •  No trace faults (primary page table modifications as fast as native) •  Page faults require no exits •  Context switches require no exits •  No shadow page table memory overhead •  Better scalability to wider vSMP •  Aligns with multi-core: performance through parallelism !  Costs •  More expensive TLB misses: O(n2) cost for page table walk, where n is the depth of the page table tree 36
  • 37. Improving NPT Performance Large pages !  2 MB today, 1 GB in the future •  In part guest’s responsibility: “inner” page tables •  For most guests/workloads this requires explicit setup •  In part VMM’s responsibility: “outer” page tables •  ESX will take care of it !  1st benefit: faster page walks (fewer levels to traverse) !  2nd benefit: fewer page walks (increased TLB capacity) TLB MMU 37
  • 38. Hardware-assisted Memory Virtualization Efficiency Improvement 60% 50% 40% 30% 20% 10% 0% Apache Compile SQL Server Citrix XenApp Efficiency Improvement 38
  • 40. Performance Help from the Hypervisor !  Take advantage of new Hardware •  Utilize multi-core systems easily without changing the app or OS •  Leverage 64-bit memory hardware sizes with existing 32-bit VMs •  Take advantage of newer high performance I/O + networking asynchronously from guest-OS changes/revs. !  More flexible Storage •  More options for distributed, reliable boot •  Leverage low-cost, high performance NFS, iSCSI I/O for boot or data without changing the guest OS !  Distributed Resource Management •  Manage Linux, Solaris, Windows with one set of metrics and tools •  Manage horizontal apps with cluster-aware resource management 40
  • 41. CPU and Memory Paravirtualization Paravirtualization extends the File guest to allow direct interaction System with the underlying hypervisor Guest TCP/IP Paravirtualization reduces the monitor cost including memory and System call operations. Monitor Monitor Gains from paravirtualization Virtual NIC Virtual SCSI are workload specific Memory VMkernel Virtual Switch File System Scheduler Allocator Hardware virtualization mitigates the need for some of NIC Drivers I/O Drivers the paravirtualization calls VMware approach: VMI and paravirt-ops Physical Hardware 41
  • 42. Device Paravirtualization Device Paravirtualization places File A high performance virtualization- System Aware device driver into the guest Guest TCP/IP pvdriver Paravirtualized drivers are more CPU efficient (less CPU over- head for virtualization) Monitor pvdevice Virtual SCSI Paravirtualized drivers can Memory also take advantage of HW VMkernel Scheduler Allocator Virtual Switch File System features, like partial offload (checksum, large-segment) NIC Drivers I/O Drivers VMware ESX uses para- virtualized network drivers Physical Hardware 42
  • 43. Storage – Fully virtualized via VMFS and Raw Paths Guest OS Guest OS Guest OS /dev/hda /dev/hda /dev/hda VMFS database1.vmdk database2.vmdk FC LUN FC or iSCSI LUN ! RAW ! VMFS ! RAW provides direct access to ! Leverage templates and quick provisioning a LUN from within the VM ! Fewer LUNs means you don’t have to ! Allows portability between physical and watch Heap virtual ! Scales better with Consolidated Backup ! RAW means more LUNs ! Preferred Method •  More provisioning time ! Advanced features still work 43
  • 44. Optimized Network Performance Network stack and drivers ere implemented in ESX layer (not in the guest) File TCP/IP System VMware’s strategy is to Guest optimize the network stack in the ESX layer, and keep the guest 100% agnostic of the underlying hardware Monitor This enables full-virtualization Virtual NIC Virtual SCSI capabilities (vmotion etc) Memory VMkernel Scheduler Allocator Virtual Switch File System ESX Stack is heavily Performance optimized NIC Drivers I/O Drivers ESX Focus: stateless offload; including LSO (large segment Offload), Checksum offload, 10Gbe perf, Multi-ring NICs Physical Hardware 44
  • 45. Guest-Transparent NFS and iSCSI iSCSI and NFS Virtualization in VMware ESX iSCSI and NFS are growing File To be popular, due to their TCP/IP System Guest low port/switch/fabric costs Virtualization provides the ideal mechanism to transparently adopt iSCSI/NFS Monitor Guests don’t need iSCSI/NFS Virtual NIC Virtual SCSI Drivers: they continue to see VMkernel Memory SCSI Virtual Switch Scheduler Allocator iSCSI Or NFS VMware ESX 3 provides high NIC Drivers Performance NFS and iSCSI Stacks Futher emphasis on 1Gbe/ Physical 10Gbe performance Hardware 45
  • 46. INTRODUCTION TO PERFORMANCE MONITORING 46
  • 47. Traditional Architecture Operating system performs various roles •  Application Runtime Libraries •  Resource Management (CPU, Memory etc) •  Hardware + Driver management " Performance & Scalability of the OS was paramount " Performance Observability tools are a feature of the OS 47
  • 48. Performance in a Virtualized World The OS takes on the role of a Library, Virtualization layer grows Application Run-time Libraries and Services Application-Level Service Management Application-decomposition of performance Run-time or Deployment OS Local Scheduling and Memory Management Local File System Infrastructure OS (Virtualization Layer) Scheduling Resource Management Device Drivers I/O Stack File System Volume Management Network QoS Firewall Power Management Fault Management Performance Observability of System Resources 48
  • 49. Performance Management Trends Partitioning Distributed Resource Service-Oriented/ Management Service-Level Driven Web App DB ESX 1.x vSphere PaaS, Appspeed 49
  • 50. Performance Measurement !  Three basic performance measurement metrics: •  Throughput: Transactions per/Sec, Instructions Retired per sec, MB/sec, IOPS, etc, … •  Latency: How long does it take •  e.g., Response time •  Utilization: How much resource is consumed to perform a unit of work !  Latency and throughput are often inter-related, latency becomes important for smaller jobs 50
  • 51. Throughput, Queues and Latency Customers Serviced Arriving (throughput is Queue Customers customers (how many people in (arrivals per minute) Checkout service per queue) Utilization = percentage minute) of time busy serving customers queue time service time response time 51
  • 52. Mathematical Representation, terms Arriving Queue Customers Checkout Utilization = busy-time at server / time elapsed input output server queue time service time response time 52
  • 53. Throughput,Utilization and Response time are connected The Buzen and Denning Method 53
  • 54. Relationship between Utilization and Response Time 54
  • 55. Summary of Queuing and Measurements !  Utilization is a measure of the resources, not quality of service •  We can measure utilization (e.g. CPU), but don’t assume good response time •  Measuring service time and queuing (Latency) is much more important !  Throughput shows how much work is completed only •  Quality of service (response time) may be compromised if there is queuing or slow service times. !  Make sure your key measurement indicators represent what constitutes good performance for your users •  Measure end-user latency of users •  Measure throughput and latency of a system !  Common mistakes •  Measure something which has little to do with end-user happiness/performance •  Measure utilization only •  Measure throughput of an overloaded system with a simple benchmark, resulting in artificially high results since response times are bad 55
  • 56. Potential Impacts to Performance !  Virtual Machine Contributors Latency: •  CPU Overhead can contribute to latency •  Scheduling latency (VM runnable, but waiting…) •  Waiting for a global memory paging operation •  Disk Reads/Writes taking longer !  Virtual machine impacts to Throughput: •  Longer latency, but only if the application is thread-limited •  Sub-systems not scaling (e.g. I/O) !  Virtual machine Utilization: •  Longer latency, but only if the application is thread-limited 56
  • 57. Comparing Native to Virtualized Performance !  Pick the key measure •  Not always Utilization •  User response-time and throughput might be more important !  It’s sometimes possible to get better virtual performance •  Higher throughput: Can use multiple-VMs to scale up higher than native •  Memory sharing can reduce total memory footprint !  Pick the right benchmark •  The best one is your real application •  Avoid micro-benchmarks: they often emphasize the wrong metric •  especially in virtualized environments 57
  • 58. Performance Tricks and Catches !  Can trade-off utilization for latency •  Offloading to other CPUs can improve latency of running job at the cost of more utilization •  A good thing in light of multi-core !  Latency and Throughput may be skewed by time •  If the time measurement is inaccurate, so will be the latency or throughput measurements •  Ensure that latency and throughput are measured from a stable time source 58
  • 59. Time keeping in Native World !  OS time keeping •  OS programs the timer hardware to deliver timer interrupts at specified frequency •  Time tracked by counting timer interrupts •  Interrupts are masked in critical section of the OS code •  Time loss is inevitable however rate of progress of time is nearly constant !  Hardware time keeping •  TSC: Processor maintains Time Stamp Counter. Applications can query TSC (RDTSC instruction) for high precision time •  Not accurate when processor frequency varies (e.g. Intel’s Speedstep) 59
  • 60. Time keeping in Virtualized World !  OS time keeping •  Time progresses in the guest with the delivery of virtual timer interrupts •  Under CPU over commitment timer interrupts may not be delivered to the guest at the requested rate •  Lost ticks are compensated with fast delivery of timer interrupts •  Rate of progress of time is not constant (Time sync does not address this issue) !  Hardware time keeping •  TSC: Guest OSes see pseudo-TSC that is based on physical CPU TSC •  TSC’s may not be synchronized between physical CPUs •  RDTSC is unreliable if the VM migrates between physical CPUs or across host (Vmotion) 60
  • 61. Native-VM Comparison Pitfalls (1 of 3) !  Guest reports clock speed of the underlying physical processor •  Resource pool settings may limit the CPU clock cycles •  Guest may not get to use the CPU all the time under contention with other virtual machines !  Guest reports total memory allocated by the user •  This doesn’t have to correspond to the actual memory currently allocated by the hypervisor 61
  • 62. Native-VM Comparison Pitfalls (2 of 3) !  Processor Utilization accounting •  Single threaded application can ping pong between CPUs •  CPU utilization reported in task manager is normalized per CPU •  Windows does not account idle loop spinning !  Available Memory •  Available memory inside the guest may come from swap on the host 62
  • 63. Native-VM Comparison Pitfalls (3 of 3) !  Hardware setup and configuration differences •  Processor: Architecture, cache, clock speed •  Performance difference between different architecture is quite substantial •  L2, L3 cache size impacts performance of some workload •  Clock speed becomes relevant only when the architecture is the same •  Disk : Local dedicated disk versus shared SAN •  Incorrect SAN configuration could impact performance •  File system: Local file system versus Distributed VMFS •  Distributed file systems (VMFS) have locking overhead for metadata updates •  Network: NIC adapter class, driver, speed/duplex " Slower hardware can outperform powerful hardware when the latter shares resources with more than one OS/Application 63
  • 64. Virtualized World Implications !  Guest OS metrics •  Performance metrics in the guest could be skewed when the rate of progress of time is skewed •  Guest OS resource availability can give incorrect picture !  Resource availability •  Resources are shared, hypervisors control the allocation •  Virtual machines may not get all the hardware resources !  Performance Profiling •  Hardware performance counters are not virtualized •  Applications cannot use hardware performance counters for performance profiling in the guest !  Virtualization moves performance measurement and management to the hypervisor layer 64
  • 65. Approaching Performance Issues •  Make sure it is an apples-to-apples comparison •  Check guest tools & guest processes •  Check host configurations & host processes •  Check VirtualCenter client for resource issues •  Check esxtop for obvious resource issues •  Examine log files for errors •  If no suspects, run microbenchmarks (e.g., Iometer, netperf) to narrow scope •  Once you have suspects, check relevant configurations •  If all else fails…discuss on the Performance Forum 65
  • 66. Tools for Performance Analysis !  VirtualCenter client (VI client): •  Per-host and per-cluster stats •  Graphical Interface •  Historical and Real-time data !  esxtop: per-host statistics •  Command-line tool found in the console-OS !  SDK •  Allows you to collect only the statistics they want !  All tools use same mechanism to retrieve data (special vmkernel calls) 66
  • 67. Important Terminology File TCP/IP System Service vCPU Console Guest Virtual Disk cCPU VMHBA Monitor Monitor vNIC Virtual NIC Virtual SCSI Memory VMkernel Virtual Switch File System Scheduler Allocator NIC Drivers I/O Drivers HBA Physical Hardware pCPU Physical Disk pNIC 67
  • 68. VI Client Chart Type Real-time vs. Historical Object Counter type Rollup Stats type 68
  • 69. VI Client !  Real-time vs. archived statistics (past hour vs. past day) !  Rollup: representing different stats intervals !  Stats Type: rate vs. number !  Objects (e.g., vCPU0, vCPU1, all CPUs) !  Counters (e.g., which stats to collect for a given device) !  Stacked vs. Line charts 69
  • 70. Real-time vs. Historical stats !  VirtualCenter stores statistics at different granularities Time Interval Data frequency Number of samples Past Hour (real-time) 20s 180 Past Day 5 minutes 288 Past Week 15 minutes 672 Past Month 1 hour 720 Past Year 1 day 365 70
  • 71. Stats Infrastructure in vSphere 4. Rollups DB ESX 3. Send 5-min stats to DB ESX vCenter Server (vpxd, tomcat) 1. Collect 2. Send 5-min stats 20s and to vCenter ESX 5-min host and VM stats 71
  • 72. Rollups 1.  Past-Day (5-minutes) " Past-Week 2.  Past-Week (30-minutes) " Past-Month 3.  Past-Month (2-hours) " Past-Year 4.  (Past-Year = 1 data point per day) DB DB only archives historical data •  Real-time (i.e., Past hour) NOT archived at DB •  Past-day, Past-week, etc. " Stats Interval •  Stats Levels ONLY APPLY TO HISTORICAL DATA 72
  • 73. Anatomy of a Stats Query: Past-Hour (“RealTime”) Stats DB ESX 1. Query Client ESX vCenter Server (vpxd, tomcat) 3. Response 2. Get stats from host ESX No calls to DB Note: Same code path for past-day stats within last 30 minutes 73
  • 74. Anatomy of a Stats Query: Archived Stats DB ESX 2. Get stats 1. Query Client ESX vCenter Server (vpxd, tomcat) 3. Response ESX No calls to ESX host (caveats apply) Stats Level = Store this stat in the DB 74
  • 75. Stats type !  Statistics type: rate vs. delta vs. absolute Statistics type Description Example Rate Value over the CPU Usage (MHz) current interval Delta Change from CPU Ready time previous interval Absolute Absolute value Memory Active (independent of interval) 75
  • 76. Objects and Counters !  Objects: instances or aggregations of devices •  Examples: VCPU0, VCPU1, vmhba1:1:2, aggregate over all NICs !  Counters: which stats to collect •  Examples: •  CPU: used time, ready time, usage (%) •  NIC: network packets received •  Memory: memory swapped 76
  • 77. Stacked vs. Line charts !  Line •  Each instance shown separately !  Stacked •  Graphs are stacked on top of each other •  Only applies to certain kinds of charts, e.g.: •  Breakdown of Host CPU MHz by Virtual Machine •  Breakdown of Virtual Machine CPU by VCPU 77
  • 78. esxtop !  What is esxtop ? •  Performance troubleshooting tool for ESX host •  Displays performance statistics in rows and column format Fields Entities -running worlds in this case 78
  • 79. esxtop FAQ !  Where to get it? •  Comes pre-installed with ESX service console •  Remote version of esxtop (resxtop) ships with the Remote Command Line interface (RCLI) package !  What are its intended use cases? •  Get a quick overview of the system •  Spot performance bottlenecks !  What it is not meant for ? •  Not meant for long term performance monitoring, data mining, reporting, alerting etc. Use VI client or the SDK for those use cases 79
  • 80. esxtop FAQ !  What is the difference between esxtop and resxtop esxtop VMKernel Service Console ESX resxtop Network hostd VMKernel Linux client machine ESXi / ESX 80
  • 81. Introduction to esxtop !  Performance statistics •  Some are static and don’t change during runtime, for example MEMSZ (memsize), VM Name etc •  Some are computed dynamically, for example CPU load average, memory over-commitment load average etc •  Some are calculated from the delta between two successive snapshots. Refresh interval (-d) determines the time between successive snapshots •  for example %CPU used = ( CPU used time at snapshot 2 - CPU used time at snapshot 1 ) / time elapsed between snapshots 81
  • 82. esxtop modes !  Interactive mode (default) •  Shows data in the screen and accepts keystrokes •  Requires TERM=xterm !  Batch mode (-b) •  Dumps data to stdout in CSV format •  Dumps default fields or fields stored in the configuration file !  Replay mode (-R) •  Replays data from vm-support performance snapshot 82
  • 83. esxtop interactive mode !  Global commands •  space - update display •  s - set refresh interval (default 5 secs) •  f - select fields (context sensitive) •  W - save configuration file (~/.esxtop3rc) •  V - view VM only •  oO - Change the order of displayed fields (context sensitive) •  ? - help (context sensitive) •  ^L - redraw screen •  q - quit 83
  • 84. esxtop screens ! Screens •  c: cpu (default) •  m: memory •  n: network VM VM VM VM •  d: disk adapter •  u: disk device (added in ESX 3.5) •  v: disk VM (added in ESX 3.5) CPU Memory Virtual vSCSI Scheduler Scheduler Switch •  i: Interrupts (new in ESX 4.0) •  p: power management (new in ESX 4.1) c, i, p m n d, u, v VMkernel 84
  • 85. Using screen Time Uptime running worlds fields hidden from the view… • Worlds = VMKernel processes • ID = world identifier • GID = world group identifier • NWLD = number of worlds 85
  • 86. Using screen - expanding groups press ‘e’ key • In rolled up view stats are cumulative of all the worlds in the group • Expanded view gives breakdown per world • VM group consists of mks, vcpu, vmx worlds. SMP VMs have additional vcpu and vmm worlds • vmm0, vmm1 = Virtual machine monitors for vCPU0 and vCPU1 respectively 86
  • 87. esxtop replay mode !  To record esxtop data •  vm-support -S -d <duration> !  To replay •  tar xvzf vm-support-dump.tgz •  cd vm-support-*/ •  esxtop -R ./ (esxtop version should match) 87
  • 88. esxtop replay mode Current time 88
  • 89. esxtop batch mode !  Batch mode (-b) •  Produces windows perfmon compatible CSV file •  CSV file compatibility requires fixed number of columns on every row - statistics of VMs/worlds instances that appear after starting the batch mode are not collected because of this reason •  Only counters that are specified in the configuration file are collected, (-a) option collects all counters •  Counters are named slightly differently 89
  • 90. esxtop batch mode !  To use batch mode •  esxtop -b > esxtop_output.csv !  To select fields •  Run esxtop in interactive mode •  Select the fields •  Save configuration file (‘w’ key) !  To dump all fields •  esxtop -b -a > esxtop_output.csv 90
  • 91. esxtop batch mode – importing data into perfmon 91
  • 92. esxtop batch mode – viewing data in perfmon 92
  • 93. esxtop batch mode – trimming data Trimming data Saving data after trim 93
  • 95. SDK !  Use the VIM API to access statistics relevant to a particular user !  Can only access statistics that are exported by the VIM API (and thus are accessible via esxtop/VI client) 95
  • 96. Conclusions !  Always Analyze with a Latency approach •  Response time of user •  Queuing for resources in the guest •  Queuing for resources in vSphere •  Queing for resources outside of the host (SAN, NAS etc) !  These tools are useful in different contexts •  Real-time data: esxtop •  Historical data: VirtualCenter •  Coarse-grained resource/cluster usage: VirtualCenter •  Fine-grained resource usage: esxtop 96
  • 98. CPUs and Scheduling o  Schedule virtual CPUs on physical CPUs o  Virtual time based proportional- share CPU scheduler Guest Guest Guest o  Flexible and accurate rate-based controls over CPU time allocations o  NUMA/processor/cache topology Monitor Monitor Monitor aware o  Provide graceful degradation in over-commitment situations VMkernel Scheduler o  High scalability with low scheduling latencies o  Fine-grain built-in accounting for workload observability o  Support for VSMP virtual machines Physical CPUs 98
  • 99. Resource Controls !  Reservation •  Minimum service level guarantee (in MHz) Total Mhz •  Even when system is overcommitted •  Needs to pass admission control Limit !  Shares •  CPU entitlement is directly proportional to VM's shares and depends on the total number of Shares shares issued apply here •  Abstract number, only ratio matters !  Limit Reservation •  Absolute upper bound on CPU entitlement (in MHz) •  Even when system is not overcommitted 0 Mhz 99
  • 100. Resource Control Example Add 2nd VM Add 3rd VM 100% ► with same 50% ► with same number number 33.3% of shares of shares ▼ Set 3rd VM’s limit to 25% of total capacity FAILED Add 4th VM Set 1st VM’s with reservation reservation to ADMISSION ◄ set to 75% of 50% of total ◄ 37.5% CONTROL total capacity 50% capacity 100
  • 101. Resource Pools !  Motivation •  Allocate aggregate resources for sets of VMs •  Isolation between pools, sharing within pools •  Flexible hierarchical organization •  Access control and delegation Admin !  What is a resource pool? •  Abstract object with permissions •  Reservation, limit, and shares L: not set Pool A Pool B L: 2000Mhz R: 600Mhz R: not set •  Parent pool, child pools and VMs S: 60 shares S: 40 shares •  Can be used on a stand-alone host or in a cluster (group of hosts) VM1 VM2 VM3 VM4 60% 40% 101
  • 102. Example migration scenario 4_4_0_0 with DRS vCenter HP HP 1 2 ProLiant 1 2 ProLiant OVER DL380G6 OVER DL380G6 1 2 TEMP 1 5 1 2 TEMP 1 5 POWER POWER POWER POWER SUPPLY SUPPLY INTER PL A Y ER SUPPLY SUPPLY INTER PL A Y ER LOCK LOCK POWER CAP POWER CAP DIMMS DIMMS 1A 3G 5E 7C 9i 9i 7C 5E 3G 1A 1A 3G 5E 7C 9i 9i 7C 5E 3G 1A 2 6 2 6 2D 4B 6H 8F 8F 6H 4B 2D 2D 4B 6H 8F 8F 6H 4B 2D ONLINE ONLINE 1 SPARE 2 1 SPARE 2 PROC PROC PROC PROC MIRROR MIRROR FANS FANS 3 7 3 7 1 2 3 4 5 6 1 2 3 4 5 6 4 8 4 8 Imbalanced Balanced Cluster Cluster 1 1 2 2 OVER TEMP 1 5 HP ProLiant DL380G6 Heavy Load POWER SUPPLY 1 POWER SUPPLY 1 2 2 OVER TEMP INTER LOCK 1 5 PL A Y ER HP ProLiant DL380G6 POWER POWER POWER CAP SUPPLY SUPPLY INTER PL A Y ER DIMMS LOCK 1A 3G 5E 7C 9i 9i 7C 5E 3G 1A POWER CAP DIMMS 1A 3G 5E 7C 9i 9i 7C 5E 3G 1A 2 6 2 6 2D 4B 6H 8F 8F 6H 4B 2D ONLINE 1 SPARE 2 2D 4B 6H 8F 8F 6H 4B 2D ONLINE PROC PROC 1 2 MIRROR SPARE FANS PROC PROC 3 7 MIRROR 1 2 3 4 5 6 FANS 3 7 1 2 3 4 5 6 4 8 4 8 Lighter Load 102
  • 103. DRS Scalability – Transactions per minute (Higher the better) Transactions per minute - DRS vs. No DRS No DRS DRS Already balanced So, fewer gains Higher gains (> 40%) with more imbalance 140000 130000 120000 Transaction per minute 110000 100000 90000 80000 70000 60000 50000 40000 2_2_2_2 3_2_2_1 3_3_1_1 3_3_2_0 4_2_1_1 4_2_2_0 4_3_1_0 4_4_0_0 5_3_0_0 Run Scenario 103
  • 104. DRS Scalability – Application Response Time (Lower the better) Transaction Response Time - DRS vs. No DRS No DRS DRS 70.00 60.00 Transaction Response time (ms) 50.00 40.00 30.00 20.00 10.00 0.00 2_2_2_2 3_2_2_1 3_3_1_1 3_3_2_0 4_2_1_1 4_2_2_0 4_3_1_0 4_4_0_0 5_3_0_0 Run Scenario 104
  • 105. ESX CPU Scheduling States !  World states (simplified view): •  ready = ready-to-run but no physical CPU free •  run = currently active and running •  wait = blocked on I/O !  Multi-CPU Virtual Machines => gang scheduling •  Co-run (latency to get vCPUs running) •  Co-stop (time in “stopped” state) 105
  • 106. Ready Time (1 of 2) !  VM state Run •  running (%used) •  waiting (%twait) •  ready to run (%ready) Ready Wait !  When does a VM go to “ready to run” state •  Guest wants to run or need to be woken up (to deliver an interrupt) •  CPU unavailable for scheduling the VM 106
  • 107. Ready Time (2 of 2) !  Factors affecting CPU availability •  CPU overcommitment •  Even Idle VMs have to be scheduled periodically to deliver timer interrupts •  NUMA constraints •  NUMA node locality gives better performance •  Burstiness – Inter-related workloads •  Tip: Use host anti affinity rules to place inter related workloads on different hosts •  Co-scheduling constraints •  CPU affinity restrictions Fact: Ready time could exist even when CPU usage is low 107
  • 108. Different Metrics for Different Reasons !  Problem Indication •  Response Times, Latency contributors •  Queuing !  Headroom Calculation •  Measure Utilization, predict headroom !  Capacity Prediction •  If I have n users today, how much resource is needed in the future? !  Service Level Prediction •  Predict the effect of response time changes •  Resource or Load changes 108
  • 109. Myths and Fallacies !  High CPU utilization is an indicator of a problem •  Not always: Single threaded compute intensive jobs operate quite happily at 100% !  Less than 100% CPU means service is good (false) •  Not always: Bursty transaction oriented workloads follow littles-law curve, which limits effective utilization to a lower number 109
  • 110. Consider these two workloads 5 5 4 4 3 3 2 2 1 1 0 0 Period 1 Period 2 Period 3 Period 4 Period 1 Period 2 Period 3 Period 4 Utilization is 25% Utilization is 25% Average Response time is high Average Response time is low 110
  • 111. The Buzen and Denning Method 111
  • 112. Simple model of the Scheduler 112
  • 113. CPU and Queuing Metrics !  How much CPU is too much? •  It’s workload dependent. •  The only reliable metrics is to calculate how much time a workload waits in a queue for CPU •  This must be a measure of guest-level threads (not VMkernel) !  Which is better – a faster CPU or more CPUs? •  Typical question in the physical world •  Question for us: will additional vCPUs help? 113
  • 114. Relationship between Utilization and Response Time 114
  • 115. Tools for diagnosing CPU performance: VI Client !  Basic stuff •  CPU usage (percent) •  CPU ready time (but ready time by itself can be misleading) !  Advanced stuff •  CPU wait time: time spent blocked on IO •  CPU extra time: time given to virtual machine over reservation •  CPU guaranteed: min CPU for virtual machine !  Cluster-level statistics •  Percent of entitled resources delivered •  Utilization percent •  Effective CPU resources: MHz for cluster 115
  • 116. CPU capacity ! How do we know we are maxed out? •  If VMs are waiting for CPU time, maybe we need more CPUs. •  To measure this, look at CPU ready time. ! What exactly am I looking for? •  For each host, collect ready time for each VM •  Compute %ready time for each VM (ready time/sampling interval) •  If average %ready time > 50%, probe further ! Possible options •  DRS could help optimize resources •  Change share allocations to de-prioritize less important VMs •  More CPUs may be the solution 116
  • 117. CPU capacity (screenshot from VI Client) Some caveats on ready time Used time !  Used time ~ ready time: may signal contention. However, might not be overcommitted due to workload variability !  In this example, we have periods of activity and idle Ready time ~ used time periods: CPU isn’t overcommitted all the time Ready time < used time 117
  • 118. VI Client CPU screenshot Note CPU milliseconds and percent are on the same chart but use different axes 118
  • 119. Cluster-level information in the VI Client !  Utilization % describes available capacity on hosts (here: CPU usage low, memory usage medium) "  % Entitled resources delivered: best if all 90-100+. 119
  • 120. CPU performance analysis: esxtop !  PCPU(%): CPU utilization !  Per-group stats breakdown •  %USED: Utilization •  %RDY: Ready Time •  %TWAIT: Wait and idling time !  Co-Scheduling stats (multi-CPU Virtual Machines) •  %CRUN: Co-run state •  %CSTOP: Co-stop state !  Nmem: each member can consume 100% (expand to see breakdown) !  Affinity !  HTSharing 120
  • 121. esxtop CPU screen (c) PCPU = Physical CPU CCPU = Console CPU (CPU 0) Press ‘f’ key to choose fields 121
  • 122. New metrics in CPU screen %LAT_C : %time the VM was not scheduled due to CPU resource issue %LAT_M : %time the VM was not scheduled due to memory resource issue %DMD : Moving CPU utilization average in the last one minute EMIN : Minimum CPU resources in MHZ that the VM is guaranteed to get when there is CPU contention 122
  • 123. Troubleshooting CPU related problems !  CPU constrained SMP VM High CPU utilization Both the virtual CPUs CPU constrained 123
  • 124. Troubleshooting CPU related problems !  CPU limit Max Limited CPU Limit AMAX = -1 : Unlimited 124
  • 125. Troubleshooting CPU related problems !  CPU contention VMs don’t get 4 CPUs, all at 3 SMP VMs to run all the %ready 100% time accumulates 125
  • 126. Further ready time examination High Ready Time High MLMTD: there is a limit on this VM… "High ready time not always because of overcommitment "When you see high ready time, double-check if limit is set 126
  • 127. Troubleshooting CPU related problems !  SMP VM running UP HAL/Kernel It is also possible that you are running a single threaded application in a SMP VM vCPU 1 not used by the VM 127
  • 128. Troubleshooting CPU related problems !  High CPU activity in the Service Console Some process in the service console is hogging CPU Not much activity in the service console VMKernel is doing some activity on behalf of the console OS - cloning in this case 128
  • 129. VI Client and Ready Time Used time "   Usedtime ~ ready time: may signal contention. However, might not be overcommitted due to workload variability "   In this example, we have periods of activity and idle periods: CPU isn’t overcommitted all the time Ready time ~ used time Ready time < used time 129
  • 130. CPU Performance !  vSphere supports eight virtual processors per VM •  Use UP VMs for single-threaded applications •  Use UP HAL or UP kernel •  For SMP VMs, configure only as many VCPUs as needed •  Unused VCPUs in SMP VMs: •  Impose unnecessary scheduling constraints on ESX Server •  Waste system resources (idle looping, process migrations, etc.) 130
  • 131. CPU Performance !  For threads/processes that migrate often between VCPUs •  Pin the guest thread/process to a particular VCPU •  Pinning guest VCPUs to PCPUs rarely needed !  Guest OS timer interrupt rate •  Most Windows, Linux 2.4: 100 Hz •  Most Linux 2.6: 1000 Hz •  Recent Linux: 250 Hz •  Upgrade to newer distro, or rebuild kernel with lower rate 131
  • 132. Performance Tips !  Idling VMs •  Consider overhead of delivering guest timer interrupts •  Lowering guest periodic timer interrupt rate should help !  VM CPU Affinity •  Constrains the scheduler: can cause imbalances •  Reservations may not be met – use on your own risk !  Multi-core processors with shared caches •  Performance characteristics heavily depend on the workload •  Constructive/destructive cache interference 132
  • 133. Performance Tips !  SMP VMs •  Use as few virtual CPUs as possible •  Consider timer interrupt overhead of idling CPUs •  Co-scheduling overhead increases with more VCPUs •  Use SMP kernels in SMP VMs •  Pinning guest threads to VCPUs may help to reduce migrations for some workloads !  Interactive Workloads (VDI, etc) •  Assign more shares, increase reservations to achieve faster response times 133
  • 134. vSphere Scheduler and HT !  Intel Hyper-threading provides the The default: more CPU appearance of two logical cores for each physical core •  They are somewhat faster than one core but not as fast as two !  Threads sharing cores less CPU than threads with their own cores v v v v !  Threads accessing common v v v v memory will benefit from running on the same socket Physical core !  So, 5+ vCPU VMs must choose between more CPU and faster v Running vCPU memory 134
  • 135. Optimizing the Scheduler for Large VMs !  On some virtual machines, preferHT memory latency is more important than CPU !  If VM has more vCPUs than there are cores in a single socket, it will run faster if forced to a single socket v v v v !  Done with Advanced Settings: v v NUMA.preferHT v v Hyper-threaded physical core v Running vCPU 135
  • 137. Virtual Memory !  Creates uniform memory address space “virtual” memory •  Operating system maps application virtual addresses to physical addresses •  Gives operating system memory management abilities guest transparent to application “physical” memory hypervisor Hypervisor adds extra level of indirection " Maps guest’s physical addresses to machine “machine” memory addresses " Gives hypervisor memory management abilities transparent to guest 137
  • 138. Virtual Memory “virtual” memory guest “virtual” Application memory guest App “physical” memory Operating “physical” System memory hypervisor OS hypervisor “machine” “machine” memory Hypervisor memory Hypervisor 138
  • 139. Application Memory Management •  Starts with no memory •  Allocates memory through syscall to operating system •  Often frees memory voluntarily through syscall •  Explicit memory allocation interface with App operating system OS Hypervi sor 139
  • 140. Operating System Memory Management •  Assumes it owns all physical memory •  No memory allocation interface with hardware •  Does not explicitly allocate or free physical memory •  Defines semantics of “allocated” and “free” App memory •  Maintains “free” list and “allocated” lists of physical memory •  Memory is “free” or “allocated” depending on which list it resides OS Hypervi sor 140
  • 141. Hypervisor Memory Management •  Very similar to operating system memory management •  Assumes it owns all machine memory •  No memory allocation interface with hardware •  Maintains lists of “free” and “allocated” memory App OS Hypervis or 141
  • 142. VM Memory Allocation •  VM starts with no physical memory allocated to it •  Physical memory allocated on demand •  Guest OS will not explicitly allocate •  Allocate on first VM access to App memory (read or write) OS Hyperv isor 142
  • 143. VM Memory Reclamation •  Guest physical memory not “freed” in typical sense •  Guest OS moves memory to its “free” list •  Data in “freed” memory may not have been modified App Guest free list OS "  Hypervisor isn’t aware when guest frees memory " Freed memory state unchanged Hypervi " No access to guest’s “free” list sor " Unsure when to reclaim “freed” guest memory 143
  • 144. VM Memory Reclamation Cont’d !  Guest OS (inside the VM) •  Allocates and frees… •  And allocates and frees… Inside the VM App •  And allocates and frees… VM "  VM Guest free list OS " Allocates… " And allocates… " And allocates… Hyperv isor "  Hypervisor needs some way of reclaiming memory! 144
  • 145. Memory Resource Management !  ESX must balance memory usage •  Page sharing to reduce memory footprint of Virtual Machines •  Ballooning to relieve memory pressure in a graceful way •  Host swapping to relieve memory pressure when ballooning insufficient •  Compression to relieve memory pressure without host-level swapping !  ESX allows overcommitment of memory •  Sum of configured memory sizes of virtual machines can be greater than physical memory if working sets fit !  Memory also has limits, shares, and reservations !  Host swapping can cause performance degradation 145