MegaPipe: A New Programming Interface for Scalable Network I/O.
OSDI'12: Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation(2012)
摘要
We present MegaPipe, a new API for efficient, scalable network I/O for message-oriented workloads. The design of MegaPipe centers around the abstraction of a channel - a per-core, bidirectional pipe between the kernel and user space, used to exchange both I/O requests and event notifications. On top of the channel abstraction, we introduce three key concepts of MegaPipe: partitioning, lightweight socket (lwsocket), and batching. We implement MegaPipe in Linux and adapt memcached and nginx. Our results show that, by embracing a clean-slate design approach, MegaPipe is able to exploit new opportunities for improved performance and ease of programmability. In microbenchmarks on an 8-core server with 64 B messages, MegaPipe outperforms baseline Linux between 29% (for long connections) and 582% (for short connections). MegaPipe improves the performance of a modified version of memcached between 15% and 320%. For a workload based on real-world HTTP traces, MegaPipe boosts the throughput of nginx by 75%.
更多查看译文
关键词
MegaPipe center,O request,baseline Linux,channel abstraction,clean-slate design approach,improved performance,new API,new opportunity,8-core server,B message,new programming interface,scalable network
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络