HGSN

매니코어OS
이동: 둘러보기, 검색

연구 배경

  • (목표) 100Gbps 네트워크 환경에서의 리눅스 기반 패킷 처리 성능을 개선하는 연구로서, 리눅스 커널과 네트워크 스택내에서 Layer 2, Layer 3 패킷 포워딩 처리 성능을 저하시키는 문제점을 분석하고 성능 향상을 위한 기술을 연구한다. 리눅스 커널내 존재하는 네트워크 스택은 task scheduling, process synchronization, interrupt handling 등과 같은 커널 메커니즘의 영향으로 오버헤드가 발생한다. 이에, 패킷 처리 성능 향상을 위해 네트워크 스택을 유저 영역으로 옮기는 연구도 진행되고 있으나, 네트워크 스택내 오버헤드는 그대로 존재하게 된다.

연구 내용

  • 10G 환경에서의 리눅스기반 네트워크 성능 측정
  • 리눅스 커널 및 네트워크 스택 성능 저하 문제점 분석
    - 메타 데이터와 데이터 버퍼 할당, 삭제에 따른 오버헤드
    - QDISC 스핀락의 오버헤드
    - 빈번한 송신 인터럽트 핸들링(초당 12K)
  • 리눅스 커널 및 네트워크 스택 개선을 통한 성능 향상
    - 메타 데이터와 데이터 버퍼 사전 할당(pre-allocation)
    - 송신 패스(Transmit Path) 최적화
    - 송신 인터럽트 핸들링 최소화

10Gtest4.PNG

시험 환경 및 결과

  • 시험 환경
    - 리눅스 커널 버전 : 4.8.0-34 (64 bit)
    - Target Machine Processor : Intel(R) Core(TM) i7-5960X CPU @ 3.00GHz
    - 인텔 10GbE 이더넷 서버 어답터 X520-SR2 NIC 및 IXGBE 드라이버(버전 5.0.4)
    - 하이퍼 쓰레딩은 disabled. 모든 패킷들은 싱글 코어에서 제어
    - Spirent TestCenter 장비를 이용한 성능 측정
  • 응용 : 커널 모드 OVS 환경에서의 L2 포워딩 성능
    - 64 bytes 크기의 UDP 패킷를 40 초 동안 송수신
    - 플로우 테이블내에 1개의 엔트리 존재

10G test1.PNG

  • 10G 네트워크 성능 측정 시험 환경

10Gtest3.PNG

  • 10G 네트워크 Packet Per Second 측정 및 성능 결과(싱글코어 환경)

10Gtest2.PNG


  • 코어 수에 따른 10G 네트워크 성능 결과(8코어 환경)

Hgsh-core.PNG