A Performance Improvement of Linux TCP/IP Stack based on Flow-Level Parallelism in a Multi-Core System
暂无分享,去创建一个
With increasing multicore system, much effort has been put on the performance improvement of its application. Because multicore system has multiple processing devices in one system, its processing power increases compared to the single core system. However in many cases the advantages of multicore can not be exploited fully because the existing software and hardware were designed to be suitable for single core. When the existing software runs on multicore, its performance improvement is limited by the bottleneck of sharing resources and the inefficient use of cache memory on multicore. Therefore, according as the number of core increases, it doesn`t show performance improvement and shows performance drop in the worst case. In this paper we propose a method of performance improvement of multicore system by applying Flow-Level Parallelism to the existing TCP/IP network application and operating system. The proposed method sets up the execution environment so that each core unit operates independently as much as possible in network application, TCP/IP stack on operating system, device driver, and network interface. Moreover it distributes network traffics to each core unit through L2 switch. The proposed method allows to minimize the sharing of application data, data structure, socket, device driver, and network interface between each core. Also it allows to minimize the competition among cores to take resources and increase the hit ratio of cache. We implemented the proposed methods with 8 core system and performed experiment. Experimental results show that network access speed and bandwidth increase linearly according to the number of core.
[1] Bryan Veal,et al. Performance scalability of a multi-core web server , 2007, ANCS '07.
[2] Donald Newell,et al. Architectural Characterization of Processor Affinity in Network Processing , 2005, IEEE International Symposium on Performance Analysis of Systems and Software, 2005. ISPASS 2005..
[3] Vikram A. Saletore,et al. ETA: experience with an Intel Xeon processor as a packet processing engine , 2004, IEEE Micro.
[4] Mats Björkman,et al. Locking effects in multiprocessor implementations of protocols , 1993, SIGCOMM 1993.