论文部分内容阅读
在网络速度不断提高的今天,网络处理的瓶颈已从链路转移到了终端。通用操作系统中低效的网络子系统成为主要瓶颈,为此工业界和学术界提出了绕过内核的高性能用户空间包I/O引擎。为充分利用这些包I/O引擎加速更多的网络应用,高性能用户空间协议栈成为了研究热点。本文以配备多队列万兆网卡的通用多核服务器为目标平台,对移植自Free BSD内核的用户空间协议栈Libuinet进行了并行化和性能优化,并为其设计了一套基于回调的编程接口。文章介绍了并行化过程中并行化模型的设计、并行化策略的实施以及基于回调的编程接口的设计,并介绍了性能优化过程中针对回调线程、收包线程、发包线程和线程调度策略的优化。实验证明,本文所设计的并行化和性能优化方法是有效的。
Today, the network speed continues to rise, the bottleneck of network processing has been transferred from the link to the terminal. As a main bottleneck, inefficient network subsystems in general-purpose operating systems have become the major bottleneck. Therefore, industry and academia have proposed a high-performance user space packet I / O engine that bypasses the kernel. To take full advantage of these packet I / O engines to accelerate more network applications, high-performance user space protocol stack has become a research hotspot. In this paper, a multi-core multi-core server with multi-queue 10G network card is used as the target platform to parallelize and optimize the user space protocol stack Libuinet ported from Free BSD kernel. And a set of programming interface based on callback is designed. This paper introduces the design of parallelization model in parallelization, the implementation of parallelization strategy and the design of programming interface based on callback, and introduces the optimization of callback thread, receive thread, send thread and thread scheduling strategy in performance optimization . Experiments show that the parallelization and performance optimization methods designed in this paper are effective.