Open-Source networking workshop 후기

Home Forums News Open-Source networking workshop 후기

This topic contains 0 replies, has 1 voice, and was last updated by  OSlab 4 months, 4 weeks ago.

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #1187

    OSlab
    Keymaster

    이번 행사는 SDN, NFV, Cloud의 통합을 화두로 사용되고 있는 여러 기술에 대해 소개하고 설명하는 자리였습니다.
    주요 발표 내용은 아래에 정리 하였고, 행사에 사용된 발표자료 책자는 연구실에 비치해두려고 합니다.
    그리고 http://www.osia.or.kr 에도 일부 발표자료가 공개된다고 하니 관심있으신 분들은 참고 하시기 바랍니다.

    1. Linux Box – Performance and Acceleration (김성민 대표, 구름 네트웍스)
    – Linux를 기반으로 하여 data plane, control plane이 구성되고 있는데, 최근의 흐름은 data plane은 하드웨어로 offloading하고 Linux는 control plane으로만 활용함
    – Linux를 기반으로 시스템을 구성할 때 패킷 처리 성능을 향상하는 것이 주요 문제인데 방법론은 크게 4가지로 나눌 수 있음
    1) Kernel optimization
    – 기존의 리눅스 커널을 수정하여 패킷 처리 성능 향상, 일반적으로 30% 성능 향상
    – NIC 드라이버의 수정이 필요하기 때문에 하드웨어에 종속적인 문제가 있음
    2) Kernel Bypass – DPDK
    – 높은 성능을 제공하지만 프로그래밍이 어려운 단점
    3) Hybrid approach – Linux control plane + DPDK
    – 프로그래밍이 용이해져서 DPDK 대비 코드 양이 줄어드는 장점이 있는데 반해 DPDK에 종속적인 단점
    4) Programmable NIC offloading
    – P4로 대표되는 프로그래밍이 가능한 하드웨어에 패킷 처리를 offloading
    – 프로그래밍이 용이하고 wire speed를 제공할 수 있지만 제공되는 기능이 한정적임
    – Kernel을 수정하여 패킷 처리 성능을 향상 시키기 보다는 DPDK와 같은 툴을 사용하는 것이 바람직하며, Linux의 장점을 차용하여 프로그래밍 용이성을 높이는 것이 필요함

    2. Linux box – Tracing and Profiling (송태웅, KOSSLab)
    – Tracing? Profiling? : Tracing은 특정 이벤트의 발생 경위를 추정하거나 실행 과정을 탐색이 목적이고, Profiling은 병목 지점을 찾는 것이 목적임
    – 기존에 다양한 기능의 분석 도구들이 제공되고 있으며, 사용하는 범위와 목적에 따라 알맞은 도구를 선택하는 것이 중요함.
    – uftrace 툴 소개: 오픈소스로 개발 중인 tracing 툴로, 함수들의 실행 순서와 각 함수의 실행 시간을 측정할 수 있는 도구
    * 각 함수에서 메모리 할당/복사의 횟수도 측정할 수 있어서 성능 저하 분석에 용이
    * 사용하는 특정 프로그램의 라이브러리를 미리 로드하여 사용하고, 커널의 경우 ftrace의 프레임워크를 활용함
    * 함수가 실행될 때 return 주소를 저장하고 mcount로 점프하여 return 주소를 변경 -> 실행 시간 측정
    – perf 툴 소개
    * 특정 프로그램의 구체적인 분석 정보를 얻을 수 있음
    * 시스템 레이어 상에서 원하는 성능 분석 지점을 선택할 수 있음
    * 파이썬 스크립트를 활용하면 각 이벤트 발생시 지연시간을 측정할 수 있는데, 함수 콜그래프와 함께 활용하면 성능 저하의 원인을 찾을 수 있음

    3. Monitoring 101: Maintain Complex systems (손영수 CPO, 어니컴)
    [Cloud data center에서의 성능 모니터링 이슈]
    – End-to-End monitoring이 점차 중요해지고 있으며 최근에는 hybrid cloud가 많이 활용됨
    * 전세계적인 서비스 제공을 위해 public cloud를 사용하고 보안상의 이유로 private cloud 활용
    * 하지만 클라우드는 공용 자원이기 때문에 예상치 못한 문제들이 발생하기도 함 -> 갑작스런 성능 저하, 연결 불능 상태, 원인은 자원 경쟁
    – 따라서 안정적인 서비스 제공을 위한 성능 모니터링이 중요함
    * 어떤 지표를 수집해야 하는 가가 중요함 -> Netflix에서는 use method를 활용하고 메모리의 경우 free보다는 available이 더 중요함
    * 프로세스는 그룹별로 모니터링 해야하며 TCP connection 상태도 모니터링이 필요
    – 컨테이너 (Docker) 모니터링의 경우 리눅스 대비 활용할 수 있는 지표가 적은 것이 문제

    [IoT, 모바일에서의 성능 모니터링 이슈]
    – IoT의 이종적인 특성 때문에 모니터링이 어려운 문제가 있으며 deivce SDK와 프로그래밍 언어도 다양해서 모니터링이 더욱 복잡함
    – Node.js가 이식성(윈도우, 리눅스) 장점으로 많이 사용되고 있음, libuv가 핵심(각 운영체제마다 최적화 되어있음)
    * 하지만 새로운 언어들은 제공하는 성능 지표가 거의 없다는 것이 단점
    * JAVA는 이에 반해 여러 성능 지표 수집 기능을 지원
    – Mobile monitoring issue
    * 안드로이드의 복잡한 레이어가 주요 원인
    * 공유 자원의 제약이 있으며, 게임 어플리케이션의 경우 다른 어플리케이션보다 한 계층(가상머신) 위에서 동작
    – 기존의 모바일 모니터링 솔루션들이 있지만 게임 앱은 지원하지 않고 안드로이드의 일부 영역만 추적이 가능하고 리눅스 커널은 불가능
    * crash가 발생해야 문제를 알 수 있다는 단점이 있음

    4. Open Source White-box switches and fabrics (서준호 매니저, SKT)
    – 네트워크 사업자에게 자원 관리 빛 서비스 제공을 위한 Network visibility가 매우 중요
    – TiNA: SKT Integrated Network Analyzer
    * 네트워크 성능 모니터링 및 분석, 문제 원인 해결을 위한 오픈소스 기반의 시스템
    * 클라우드 서비스의 성능 보장, LTE 네트워크 문제 해결, 네트워크 보안 분석등에 활용할 수 있음
    – TiNA의 구조
    * DPDK 기반 Network packet broker가 네트워크 패킷을 모니터링하여 kafka로 처리
    * data nomalization을 거친 후 분석에 활용
    – Network packet broker: OVS DB server 기반의 모니터링 데몬들을 활용
    * 코드 확장을 통해 다양한 프로토콜을 지원
    * mininet을 확장하여 지원하는 기능의 동작을 테스트 함

Viewing 1 post (of 1 total)

You must be logged in to reply to this topic.