Browse > Article
http://dx.doi.org/10.3745/KTCCS.2014.3.8.261

A Performance Improvement of Linux TCP Networking by Data Structure Reuse  

Kim, Seokkoo (숭실대학교 정보통신공학과)
Chung, Kyusik (숭실대학교 정보통신전자공학부)
Publication Information
KIPS Transactions on Computer and Communication Systems / v.3, no.8, 2014 , pp. 261-270 More about this Journal
Abstract
As Internet traffic increases recently, much effort has been put on improving the performance of a web server. In addition to hardware side solutions such as replacement by high-end hardware or expansion of the number of servers, there are software side solutions to improve performance. Recent studies on these software side solutions have been actively performed. In this paper, we identify performance degradation problems occurring in a conventional TCP networking reception process and propose a way to solve them. We improve performance by combining three kinds of existing methods for Linux Networking Performance Improvement and two kinds of newly proposed methods in this paper. The three existing methods include 1) an allocation method of a packet flow to a core in a multi-core environment, 2) ITR(Interrupt Throttle Rate) method to control excessive interrupt requests, and 3) sk_buff data structure recycling. The two newly proposed methods are fd data structure recycling and epoll_event data structure recycling. Through experiments in a web server environment, we verify the effect of our two proposed methods and its combination with the three existing methods for performance improvement, respectively. We use three kinds of web servers: a simple web server, Lighttpd generally used in Linux, and Apache. In a simple web server environment, fd data structure recycling and epoll_event data structure recycling bring out performance improvement by about 7 % and 6%, respectively. If they are combined with the three existing methods, performance is improved by up to 40% in total. In a Lighttpd and an Apache web server environment, the combination of five methods brings out performance improvement by up to 36% and 20% in total, respectively.
Keywords
Linux TCP Networking; Performance Improvement; Multi-Core; Data Structure Recycling;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 Wenji Wu, Phil DeMar, and Matt Crawford, "A Transport-Friendly NIC for Multicore / Multiprocessor Systems", IEEE Transaction on Parallel and Distributed Systems, Vol.23, No.4, pp.607-615, Apr., 2012.   DOI   ScienceOn
2 H. Kwon, H. Jung, H. Kwak, K. Chung, and Y. Kim, "Performance Improvement of Linux TCP Networking based on Flow-Level Parallelism in a Multi-Core System", The KIPS Transaction: Part A, Vol.16, No.2, pp.113-124, 2011.   과학기술학회마을   DOI   ScienceOn
3 S. J. Baek and J. M. Choi, "Internal structure of the Linux kernel", Gyohaksa, Korea, pp.230-231, 2008.
4 Intel, "Interrupt Moderation Using Intel Gigabit Ethernet Controllers", April 2007, [Internet], http://www.intel.com/content/dam/doc/application-note/gbe-controllers-interrupt-moderation-appl-note.pdf
5 Intel whitepaper, "Supra-linear Packet Processing Performance With Intel Multi-core Processors", 2006, [Internet], http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/multicore-supra-linear-packet-processing-paper.html
6 Intel Executive Summary, "Accelerating Security Applications With Intel Multi-core Processors", 2006, [Internet], http://www.intel.in/content/dam/www/public/us/en/documents/technology-briefs/multi-core-processors-security-brief.pdf
7 E. Lemoine, C. Phamand, and L. Lefevre, "Packet Classification in the NIC for Improved SMP-based Internet Servers", IEEE Proceedings of the International Conference on Networking(ICN 2004), Guadeloupe, French Caribbean, Feb., 2004.
8 Linux Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Family of Adapters, [Internet], http://downloadmirror.intel.com/14687/eng/readme.txt
9 C. Walravens, "Receive Descriptor Recycling for Small Packet High Speed Ethernet Traffic", Electrotechnical Conference, MELECON 2006, IEEE Mediterranean, pp.1252-1256, 2006.
10 Raffaele Bolla and Roberto Bruschi, "The IP Lookup Mechanism in a Linux Software Router: Performance Evaluation and Optimizations", Proc. of the 2007 IEEE Workshop on High Performance Switching and Routing.
11 Open Router resources from the TNT Lab. [Internet], www.tnt.dist.unige.it
12 R. Bolla and R. Bruschi, "A high-end Linux based Open Router for IP QoS networks: tuning and performance analysis with internal (profiling) and external measurement tools of the packet forwarding capabilities", Proc. of the 3rd International Workshop on Internet Performance, Simulation, Monitoring and Measurements(IPS MoMe 2005), Warsaw, Poland, Mar., 2005.
13 apachebench, [Internet], http://httpd.apache.org/docs/2.0/programs/ab.html
14 http://www.kegel.com/c10k.html
15 R. Bolla and R. Bruschi, "RFC 2544 Performance Evaluation and Internal Measurements for a Linux Based Open Router", Proc. of IEEE 2006 Workshop on High Performance Switching and Routing(HPSR 2006), Poznan, Poland, pp. 9-14, June, 2006.
16 Seokoo Kim and Kyusik Chung, "A Performance Improvement of Linux TCP Networking by Data Structure Reuse", Proc. of 2013 KICS(Korea Information and Communications Society) Fall Conference, Session 9A-1, pp.251-252, Nov., 2013.