Font Size: a A A

Performance Improvement For Network Function Chain On Multi-core System

Posted on:2020-12-06Degree:MasterType:Thesis
Country:ChinaCandidate:S D XiaoFull Text:PDF
GTID:2428330575458323Subject:Computer technology
Abstract/Summary:PDF Full Text Request
In recent years,with the rapid development of network,traditional network ar-chitectures have become increasingly difficult to meet requirements in terms of cost,flexibility,and rapid business development.Many enterprises,including various ISPs and hardware providers,have begun to do research in Network Function Virtualization(NFV).Network function virtualization aims to run the network functions previously implemented by hardware on common platforms through software,resulting in lower cost and higher management efficiency.The biggest problem with NFV is that it's^hard to meet the requirement of perfor-mance with software.Therefore,a lot of work has been done to study how to improve the performance of network functions.These works increase throughput and reduce latency by reducing unnecessary memory copies and CPU overhead of packets in the physical/virtual network.In addition,there are many work to study the overall perfor-mance optimization technology of a network function chain.Performance optimization for the network function chain is more meaningful,because when deploying network functions,enterprises often need multiple network functions to work together to provide complete service.For network function chains deployed on multi-core systems,network administra-tors often allocate corresponding CPU resources for the network function chain accord-ing to specific performance requirements.However,there exists some network function chains,no matter how the network administrators tune,that can not fully utilize the CPU resources,and therefore can not perform well.This kind of network function chains often has two features.The first one is that in the chain some network functions process much longer than others,and the second one is that each network function runs in a single thread(the smallest scheduling entity of the operating system).Theses two features lead to the perfomance dominance of network functions with longer process-ing time,which can not process exceed one cpu core,and thus lead to the performance degration while allocating more cpu cores.To avoid this bottleneck,we need to run network functions in multiple threads to improve the cpu usage.A common approach is to run the complete logic code of the same network function in every new thread parallelly.This approach is common but very effective in scenarios where the order of processes for different inputs does not matter,such as the continuous data processing in big data analysis.However,for network function chains,this parallel approach will introduce some problems related to correctness,versatility and performance.In order to solve the performance bottleneck of network function chain and avoid introducing other problems,this paper proposes the idea of dividing network functions according to processing time.Specifically,we divide the network function into several phases according to the processing time,and each phase runs in one thread.The processing of any one packet must go through these threads in order.The ideal effect is that after the data packets pass through these threads,the processing result will be same with the processing result of a single thread in the original mode,and the processing time of the data packets on each thread is substantially the same.To implement the idea,we further propose a deployment scheme based on code split.The main idea is to regard the length of processing time as the number of in-structions executing by the code,and split different code into different threads.There are two difficulties in the implementation of the code split scheme.Firstly,the splited code may have various temporary variables that need to be transferred between threads.This will increase the extra coding work,while a large number of variable transmissions can also cause performance instability.Secondly,it' s hard for human beings to split code evenly,because the number of instructions executed is related to many factors.To help the users deploy network functions and split the code with little effort,we de-sign and implement the ChainSplit system.We have done a lot of experiments to show that the network function chain deployed with our system can have high throughput and,compared to the common deployment methods with no code split,can achieve at least 60%improvement.With respect to performance scaling,ChainSplit can increase the throughput when allocating more CPU cores.Under the best situation,ChainSplit can increase the throughput linearly.
Keywords/Search Tags:NFV, network function chain, multi-core system, performance
PDF Full Text Request
Related items