symerton--using virtualization to accelerate packet processing
The complexity of packet-processing applications continues to grow, with encryption, compression, and XML processing becoming common on packet-processing devices at the edge of enterprise and service provider networks. While performance remains a key differentiator for these devices, the complexity and rate of change in the supported applications has made general-purpose platforms an attractive alternative to ASICs and network processors. General-purpose platforms offer excellent programmability and a wealth of existing software, in the form of operating systems, libraries, and applications that can be used to build a packet-processing system; however, the performance of general-purpose operating systems is unacceptable for many environments. This has driven developers to either make derivative versions of existing operating systems or to use special-purpose operating systems with a less comprehensive and familiar library of existing software.As part of the Symerton project, we propose using virtualization to address these issues. We have designed a system that has a virtual machine dedicated to high-performance networking, and a virtual machine dedicated to hosting non-performance critical tasks in a general-purpose operating system. Using a proof-of-concept implementation, we show that the resulting system outperforms a general-purpose operating system by an average of 22\% for a real networking application. We also discuss tradeoffs that will need to be considered in further development of systems using this design.
virtualization networking communications systems