DOI QR코드

DOI QR Code

System-Call-Level Core Affinity for Improving Network Performance

네트워크 성능향상을 위한 시스템 호출 수준 코어 친화도

  • 엄준용 (건국대학교 컴퓨터정보통신학과) ;
  • 조중연 (건국대학교 컴퓨터정보통신학과) ;
  • 진현욱 (건국대학교 컴퓨터정보통신학과)
  • Received : 2016.10.14
  • Accepted : 2016.11.13
  • Published : 2017.01.15

Abstract

Existing operating systems experience scalability issues as the number of cores increases. The network I/O performance on manycore systems is faced with the major limiting factors of cache consistency costs and locking overheads. Legacy methods resolve this issue include the new microkernel-like operating system or modification of existing kernels; however, these solutions are not fully application transparent. In this study, we proposed a library that improves the network performance by separating system call context from user context and by applying the core affinity without any kernel and application modifications. Experiment results showed that our implementation can improve the network throughput of Apache by up to 30%.

기존의 운영체제는 매니코어 시스템에서 코어 수의 증가에 따른 확장성 문제를 보였다. 특히 네트워크 I/O 관점에서 코어가 많아질수록 기존의 운영체제가 가지는 캐시 일관성 비용, lock 오버헤드 등의 문제들은 네트워크 성능을 저하시키는 주된 요인이 된다. 많은 연구들이 마이크로커널과 같은 새로운 운영체제 구조를 제안하거나 커널 수준의 변경을 통해 이러한 문제를 해결하고자 하였다. 그러나 이러한 해결책들은 이미 구현된 수많은 응용을 지원할 수 없다는 단점이 있다. 본 논문에서는 커널이나 응용 수준의 변경 없이 사용자 문맥과 시스템 호출 문맥을 분리시키고 코어 친화도를 적용하여 네트워크 성능을 향상시킬 수 있는 라이브러리를 제안한다. 구현된 시스템은 Apache를 통해 네트워크 처리량을 약 30% 향상시킬 수 있음을 보인다.

Keywords

Acknowledgement

Grant : 매니코어 기반 초고성능 스케일러블 OS 기초연구

Supported by : 정보통신기술진흥센터

References

  1. B-W. Silas, A-T. Clements, Y. Mao, A. Pesterev, M-F. Kaashoek, R. Morris, and N. Zeldovich, "An Analysis of Linux Scalability to Many Cores," Proc. of OSDI, pp. 86-93, 2010.
  2. B-W. Silas, H. Chen, R. Chen, Y. Mao, M-F. Kaashoek, R. Morris, A. Pesterev, L. Stein, M. Wu, Y. Dai, Y. Zhang, and Z. Zhang, "Corey: An Operating System for Many Cores," Proc. of OSDI, pp. 43-57, 2008.
  3. A. Baumann, P. Barham, P-E. Dagand, T. Harris, R. Isaacs, S. Peter, T. Roscoe, A. Schüpbach, and A. Singhania, "The Multikernel: A New OS Architecture for Scalable Multicore Systems," Proc. of SIGOPS, pp. 29-44, 2005.
  4. B. Rhoden, K. Klues, D. Zhu, and E. Brewer, "Improving Per-node Efficiency in the Datacenter with New OS Abstractions," Proc. of SoCC, pp. 25, 2011.
  5. T. David, R. Guerraoui, and V. Trigonakis, "Everything You Always Wanted to Know About Synchronization but were Afraid to Ask," Proc. of SoCC, pp. 33-48, 2013.
  6. S. Han, S. Marshall, B-G. Chun, and S. Ratnasamy, "MegaPipe: A New Programming Interface for Scalable Network I/O," Proc of. OSDI, pp. 135-148, 2012.
  7. E. Jeong, S. Woo, M. Jamshed, H. Jeong, S. Ihm, D. Han, and K. Park, "mTCP: A Highly Scalable User-level TCP Stack for Multicore Systems," Proc. of NSDI, pp. 489-502, 2014.
  8. J-Y. Cho, H-W. Jin, M. Lee, and K. Schwan, "Dynamic Core Affinity for High-performance File Upload on Hadoop Distributed File System," Parallel Computing, Vol. 40, Issue. 10, pp. 722-737, 2014. https://doi.org/10.1016/j.parco.2014.07.005
  9. H-C. Jang, and H-W. Jin, "MiAMI: Multi-Core Aware Processor Affinity for TCP/IP over Multiple Network Interfaces," Proc. of HotI, pp. 73-82, 2009.
  10. Apache Software Foundation, "Apache HTTP Server Project," [Online]. Available: http://httpd.apache.org, 1997-2016.
  11. PHP Benchmark Script, "Welcome to the PHP benchmark Script," [Online]. Available: http://www.phpbenchmark-script.com, 2012.
  12. Apache Software Foundation, "Apache JMeter," [Online]. Available: http://jmeter.apache.org, 1999-2016.
  13. TTCP, "A test of TCP and UDP performance," USNA, 1984.
  14. S. Srikantha, S. Dwarkadas, and K. Sehn, "Data sharing or resource contention: Toward performance transparency on multicore systems," Proc. of USENIX ATC, pp. 529-540, 2015.