A Performance Improvement of Linux TCP Networking by Data Structure Reuse


KIPS Transactions on Computer and Communication Systems, Vol. 3, No. 8, pp. 261-270, Aug. 2014
10.3745/KTCCS.2014.3.8.261,   PDF Download:

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.


Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from September 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
S. K. Kim and K. S. Chung, "A Performance Improvement of Linux TCP Networking by Data Structure Reuse," KIPS Transactions on Computer and Communication Systems, vol. 3, no. 8, pp. 261-270, 2014. DOI: 10.3745/KTCCS.2014.3.8.261.

[ACM Style]
Seok Koo Kim and Kyu Sik Chung. 2014. A Performance Improvement of Linux TCP Networking by Data Structure Reuse. KIPS Transactions on Computer and Communication Systems, 3, 8, (2014), 261-270. DOI: 10.3745/KTCCS.2014.3.8.261.