Performance Issues in Virtualization: Impact on Cloud Computing Network Efficiency
This lecture explores the performance implications of virtualization in cloud computing environments, focusing on key concepts such as resource sharing, processor sharing, and network performance. It discusses the effects of virtualization on Amazon EC2, including performance profiling and measurement methodologies for network latency, throughput, and packet loss. Key experiments highlight how different instance sizes and availability zones influence TCP/UDP performance, with recommendations for mitigating performance issues. The discussion emphasizes the importance of understanding virtualization effects to optimize application performance.
Performance Issues in Virtualization: Impact on Cloud Computing Network Efficiency
E N D
Presentation Transcript
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 • JiaqingDu, NipunSehrawat, and Willy Zwaenepoel
Virtualization Impacts Network Performance • Cloud computing uses virtualization to provide resource sharing • Time sharing • Processors, NIC, harddisk, performance monitoring unit Guest0 Guest1 Dom0 Driver domain Xen NIC
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 round-trip delay measurements
TCP/UDP throughput • UDPTest • The program itself must be able to read and send data as fast as possible 128KB UDPSend UDPRecv Dom0 Dom0 Xen Xen NIC NIC
TCP/UDP throughput 128KB • TCPTest • Send and Receive window set to 256KB • 0.5ms • 4Gbps TCPSend TCPRecv Dom0 Dom0 Xen Xen NIC NIC
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
How to compute CPU share • Loop > 1ms off • Loop ~ 3us on
Why? • TCP/UDP sender is scheduled off • UDP > TCP • Sender can send when receiver is scheduled off
Why • Queuing? • Unlikely, rare packet loss • <500Mb/s TCP throughput no congestion • Receiver scheduled off • no reply until it’s on again
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
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?