Performance and Virtualization

Download Report

Transcript Performance and Virtualization

Lecture 7: Performance Issues
with Virtualization
Xiaowei Yang (Duke University)
Recap
• What’s cloud computing
• Security issues
Today
• How virtualization impacts performance
(measurement)
– The Impact of Virtualization on Network
Performance of Amazon EC2 Data Center
• Guohui Wang, T. S. Eugene Ng
– Performance Profiling in a Virtualized
Environment
• Jiaqing Du, Nipun Sehrawat, and Willy
Zwaenepoel
Virtualization Impacts Network
Performance
Guest0
Guest1
Dom0
Xen
Driver
domain
NIC
• Cloud computing uses virtualization to
provide resource sharing
– Time sharing
– Processors, NIC, harddisk, performance
monitoring unit
Measure the impact of
virtualization
• Processor sharing
• Packet round-trip delay
• TCP/UDP throughput
• Packet loss
Processor sharing
• Measurement methodology
– CPUTest: loops for a million times
– Gettimeofday() at the beginning and end of
the loop
– Saves timestamps in memory
– Dump the saves timestamps to disks
Packet round-trip delay
• 10 ping probes per second, 5000 roundtrip delay measurements
TCP/UDP throughput
128KB
UDPSend
Dom0
Xen
NIC
UDPRecv
Dom0
Xen
NIC
• UDPTest
– The program itself must be able to read
and send data as fast as possible
TCP/UDP throughput
128KB
TCPSend
Dom0
Xen
NIC
• TCPTest
TCPRecv
Dom0
Xen
NIC
– Send and Receive window set to 256KB
– 0.5ms
–  4Gbps
Packet loss
• Badabing
– Packet loss estimation
– Active probes and statistical estimations
Experiments setup: spatial
• Across different instances, availability
zone
• For each availability zone (3 total)
– 250 pairs of small instance
– 50 pairs of medium instances
– TCP/UDP
• May congest the network
• Limit to 800MB data
– Badabing
• One minute
Experiments setup: temporal
• Over a period of time
• Two small instance pairs and one medium
in each of the availability zone
– Processor sharing, network performance,
and packet loss
– Round by round for 150 hours
– Each round separate for 10 minutes
Results
Processor sharing
How to compute CPU share
• Loop > 1ms  off
• Loop ~ 3us  on
Distribution of CPU share
Bandwidth measurement results
Bandwidth measurement results
A closer look
Medium instances’ performance
Why?
• TCP/UDP sender is scheduled off
• UDP > TCP
– Sender can send when receiver is scheduled
off
End-to-end delays
Why
• Queuing?
– Unlikely, rare packet loss
– <500Mb/s TCP throughput  no congestion
• Receiver scheduled off
–  no reply until it’s on again
Packet loss estimation
Why?
• Measurement tool not considering
virtualization does not fit
– Badabing detects loss episodes
– Loss episode
• A packet loss within some time of now
• One way delay is larger than a threshold
•  Large variation leads to a high loss estimate
Badabing overestimates loss
Implications
• Delay = queuing + transmission +
propagation + scheduled off
• Affect the fidelity of network testing
if using small instances
• May cause performance problems for
some applications
–  yet to be validated
Discussion
• Easy fix: using medium or large instances
• I/O sharing
• Better way to share networks?
• Ways to detect whether you are sharing
with another instance
• Try it on other instances?