본문 바로가기
KERD
논문KCI 등재

자료 구조 재사용을 이용한 리눅스 TCP 네트워킹 성능 개선

A Performance Improvement of Linux TCP Networking by Data Structure Reuse

0

조회

0

다운로드

2

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

최근 인터넷 트래픽이 증가하면서 웹 서버의 성능 향상에 많은 노력들을 기울여왔다. 고사양 하드웨어로의 교체 또는 서버 수의 증설과 같은 하드웨어 측면 해결방법 외에 소프트웨어 측면의 해결 방법들이 있는데 최근 이에 대한 연구들이 활발히 진행되고 있다. 본 논문에서는 기존 TCP 네트워킹 수신과정에서 발생하는 성능 저하 문제점들을 파악하고 이를 해결할 수 있는 방법을 제안한다. 리눅스TCP 네트워킹 성능 개선에 관한 기존 방법 세 가지와 본 논문에서 새로 제안하는 두 가지 방법을 통합 적용하여 성능을 향상시킨다. 기존 개선방법들로는 멀티코어 환경에서 패킷을 흐름단위로 코어에 할당하는 방법, 과도한 인터럽트 요청을 조절하는 ITR(Interrupt Throttle Rate) 방법,sk_buff 자료구조 recycling 방법이다. 본 논문에서 새로 제안하는 방법은 fd 자료구조 recycling 방법과 epoll_event 자료구조 recycling 방법이다. 웹 서버 환경에서 실험을 통해 본 논문의 제안방법들의 성능 개선효과, 또한 기존방법들과의 통합 적용했을 경우 성능 개선효과를 검증한다. 웹 서버로는 간단한 웹 서버, 리눅스에서 일반적으로 사용하는 Lighttpd와 Apache 웹 서버를 사용한다. 간단한 웹 서버 환경에서 본 논문에서제안한 fd 재사용과 epoll_event 재사용을 적용할 경우 성능이 각각 7%와 6% 개선되고, 이 두 가지 방법을 기존의 세 가지 방법과 통합하여적용한 경우 성능이 총 40%까지 개선된다. Lighttpd와 Apache 웹 서버 환경에서 다섯 가지 통합 방법을 적용한 경우 성능이 각각 총 36%,20%까지 개선된다.

Abstract

As Internet traffic increases recently, much effort has been put on improving the performance of a web server. In addition to hardwareside solutions such as replacement by high-end hardware or expansion of the number of servers, there are software side solutions toimprove 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 proposea way to solve them. We improve performance by combining three kinds of existing methods for Linux Networking PerformanceImprovement and two kinds of newly proposed methods in this paper. The three existing methods include 1) an allocation method of apacket 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 thethree existing methods for performance improvement, respectively. We use three kinds of web servers: a simple web server, Lighttpdgenerally used in Linux, and Apache. In a simple web server environment, fd data structure recycling and epoll_event data structurerecycling 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 methodsbrings out performance improvement by up to 36% and 20% in total, respectively.

참고문헌 (16)

  1. Wenji Wu, "A Transport-Friendly NIC for Multicore", Multiprocessor Systems, 2012, pp.23(4), 607~615
  2. 권희웅, "멀티코어 시스템에서 흐름 수준 병렬처리에 기반한 리눅스 TCP", IP 스택의 성능 개선, 2009, pp.16(2), 113~124[DOI]
  3. S. J. Baek, "Internal structure of the Linux kernel", pp.230~231 (2008), Gyohaksa
  4. "Interrupt Moderation Using Intel Gigabit Ethernet Controllers" (2007)[URL]
  5. "Supra-linear Packet Processing Performance With Intel Multi-core Processors" (2006)[URL]
  6. "Accelerating Security Applications With Intel Multi-core Processors" (2006)[URL]
  7. E. Lemoine, "Packet Classification in the NIC for Improved SMP-based Internet Servers", IEEE Proceedings of the International Conference on Networking(ICN 2004) (2004)
  8. "Linux Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Family of Adapters"[URL]
  9. C. Walravens, "Receive Descriptor Recycling for Small Packet High Speed Ethernet Traffic", Electrotechnical Conference, MELECON 2006, IEEE Mediterranean, pp.1252~1256 (2006)
  10. R. Bolla, "“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) (2005)
  11. "apachebench"[URL]
  12. Raffaele Bolla, "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
  13. R. Bolla, "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), pp.9~14 (2006)
  14. Seokoo Kim, "A Performance Improvement of Linux TCP Networking by Data Structure Reuse", Proc. of 2013 KICS(Korea Information and Communications Society) Fall Conference, pp.251~252 (2013)

관련 논문AI추천

이 간행물의 다른 논문 (3건)