Editing Performance/Response Time

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 4: Line 4:
 
The aim of this benchmark is to measure how fast can application inside of virtual machine (VM) or operating system container (CT) react on external request under various conditions:
 
The aim of this benchmark is to measure how fast can application inside of virtual machine (VM) or operating system container (CT) react on external request under various conditions:
 
* Idle system and idle VM/CT
 
* Idle system and idle VM/CT
* Loaded system and idle VM/CT
+
* Busy system and idle VM/CT
* Loaded system and loaded VM/CT
+
* Busy system and busy VM/CT
  
This workload simulates latency sensitive real life application which receives an event through the network and have to respond. Such workloads are very sensitive for CPU scheduling algorithms and work best when interactivity is taken into account.
+
Described benchmark case is common for many latency sensitive real life workloads. For example: high performance computing, image processing and rendering, web and database servers and so on.
Examples of such workloads: high performance computing environments (which introduce small synchronization messages), web and database servers and so on.
 
  
 
=== Implementation ===
 
=== Implementation ===
To measure response time a well known netperf TCP_RR test is used which measures how many round-trips a message can do between 2 hosts. To add a load in VM/CT simple CPU hog application (doing a busyloop and nothing else) is started. To emulate loaded system we run several loaded VM/CT (to eat all the host CPU time). Netperf runs in server mode inside of '''one''' of VM/CT. On the separate physical host we run netperf TCP_RR test against selected VM/CT over the 1Gbit network.
+
To measure response time we use well known netperf TCP_RR test. To emulate busy VM/CT we run CPU eater program (busyloop) inside of it. To emulate busy system we run several busy VM/CT (to eat all the host CPU time). Netperf runs in server mode inside of '''one''' VM/CT. On the separate physical host we run netperf TCP_RR test against selected VM/CT over the 1Gbit network.
  
 
=== Testbed Configuration ===
 
=== Testbed Configuration ===
Hardware
+
Server: 4xHexCore Intel Xeon (2.66 GHz), 32 GB RAM
* Server: 4xHexCore Intel Xeon (2.66 GHz), 32 GB RAM
 
* Client: 4xHexCore Intel Xeon (2.136 GHz), 32 GB RAM
 
* Network: 1Gbit direct server<>client connection
 
  
Platform:
+
Client: 4xHexCore Intel Xeon (2.136 GHz), 32 GB RAM
* Virtualization Software: ESXi4.1upd1, XenServer5.6fp1, HyperV (R2), OpenVZ (RHEL6) 2.6.32-042test006.1.x86_64
+
 
* Guest OS: CentOS 5.5 x86_64
+
Network: 1Gbit direct server<>client connection
 +
 
 +
Virtualization Software: ESXi4.1upd1, XenServer5.6fp1, HyperV (R2), OpenVZ (RHEL6) 2.6.32-042test006.1.x86_64
 +
 
 +
Guest OS: CentOS 5.5 x86_64
  
 
Software and Tunings:  
 
Software and Tunings:  
Line 37: Line 37:
 
[[File:Response_time_v2.png]]
 
[[File:Response_time_v2.png]]
  
=== Summary ===
 
  
* '''In all the three cases (1 - idle system and idle VM/CT, 2 - loaded system and idle VM/CT, 3 - loaded system and loaded VM/CT) OpenVZ shows the lowest overhead over all the tested virtualization solutions and demonstrates latencies close to the native results of non-virtualized systems.'''
+
'''In all the three cases (idle system and idle VM/CT, busy system and idle VM/CT, busy system and busy VM/CT) OpenVZ show the lowest overhead over all the tested virtualization solutions'''
* '''VM virtualization solutions (like Xen, ESX) demonstrate latencies by an order of magnitude worse then native response times and introduce ~700-3000% overhead.'''
 

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)