Skip to main content
QUICK REVIEW

[논문 리뷰] Automatic Parallelization of Software Network Functions

Francisco Pereira, Fernando M. V. Ramos|arXiv (Cornell University)|2023. 07. 27.
Software-Defined Networks and 5GComputer Science인용 수 3
한 줄 요약

Maestro는 소프트웨어 네트워크 기능(NF)의 상태 접근 패턴을 분석하고 NIC의 수신 측 스케일링(RSS)을 구성하여 동일한 플로우의 패킷을 동일한 코어로 라우팅함으로써 소프트웨어 NF를 자동으로 병렬화하는 도구이다. 이를 통해 상호 배타적 아키텍처(shared-nothing architecture)를 실현하여 코어 간 조율을 제거한다. Maestro는 PCIe 또는 100 Gbps 라인레이트 한계에 도달할 때까지 선형 확장성을 달성하며, 하드웨어 트랜잭셔널 메모리보다도 성능이 뛰어나며, 병렬화에 불리한 워크로드에서도 성능을 냅니다.

ABSTRACT

Software network functions (NFs) trade-off flexibility and ease of deployment for an increased challenge of performance. The traditional way to increase NF performance is by distributing traffic to multiple CPU cores, but this poses a significant challenge: how to parallelize an NF without breaking its semantics? We propose Maestro, a tool that analyzes a sequential implementation of an NF and automatically generates an enhanced parallel version that carefully configures the NIC's Receive Side Scaling mechanism to distribute traffic across cores, while preserving semantics. When possible, Maestro orchestrates a shared-nothing architecture, with each core operating independently without shared memory coordination, maximizing performance. Otherwise, Maestro choreographs a fine-grained read-write locking mechanism that optimizes operation for typical Internet traffic. We parallelized 8 software NFs and show that they generally scale-up linearly until bottlenecked by PCIe when using small packets or by 100Gbps line-rate with typical Internet traffic. Maestro further outperforms modern hardware-based transactional memory mechanisms, even for challenging parallel-unfriendly workloads.

연구 동기 및 목표

  • 수동으로 소프트웨어 네트워크 기능(NF)을 병렬화하는 도전 과제를 해결하면서 의미를 유지하고 성능을 극대화합니다.
  • RSS 구성 및 조율 메커니즘 선택과 같은 저수준 병렬화 작업을 자동화하여 개발자의 부담을 줄입니다.
  • 기호 실행을 활용해 플로우 의미와 상태 접근 패턴을 추론함으로써 일반 하드웨어에서 고성능 NF를 실현합니다.
  • 지능적인 패킷 스위칭을 통해 코어 간 조율를 최소화하여 코어 수에 비례한 선형 확장성을 달성합니다.
  • 기존 솔루션, 특히 하드웨어 트랜잭셔널 메모리보다 성능이 뛰어나며, 고도의 플로우 체인지 또는 복잡한 상태 관리가 필요한 워크로드에서도 뛰어납니다.

제안 방법

  • 순차적 NF 구현을 분석하기 위해 기호 실행을 사용하여 플로우 경계를 정의하는 제약 조건(예: TCP/UDP 플로우의 5-튜플)을 추출합니다.
  • 상태 접근 패턴을 포괄적인 기호 모델로 구성하여 동일한 상태에 접근하는 패킷을 파악합니다.
  • 제약 조건 해결기를 활용해 동일한 플로우의 패킷을 동일한 CPU 코어로 매핑하는 RSS 해시 구성표를 생성합니다.
  • 구성된 RSS를 사용하여 상호 무관 아키텍처를 실현하는 병렬 NF 버전을 자동으로 생성합니다. 이는 공유 메모리 조율이 없는 아키텍처입니다.
  • 공유 무관성이 의미적으로 안전하지 않은 경우에만 세밀한 읽기/쓰기 잠금 메커니즘으로 대체하며, 일반적인 지프형 트래픽 패턴을 고려해 최적화합니다.
  • 정확성 유지와 기존 NF 프레임워크 호환성을 확보하기 위해 DPDK 및 Vigor API와 통합합니다.
Figure 1: Maestro’s architecture
Figure 1: Maestro’s architecture

실험 결과

연구 질문

  • RQ1플로우 의미의 자동 분석이 수동 간섭 없이 안전하고 효율적인 소프트웨어 NF 병렬화를 가능하게 할 수 있는가?
  • RQ2RSS 구성이 얼마나 자동화될 수 있으며, 코어 간 조율를 제거하는 상호 무관 아키텍처를 달성할 수 있는가?
  • RQ3다양한 워크로드 하에서 자동 병렬화된 NF의 성능이 수동 최적화 또는 하드웨어 가속 솔루션과 비교해 어떻게 되는가?
  • RQ4기호 실행과 제약 조건 해결이 NF에서 상태 접근 패턴을 효과적으로 추론하고 패킷 분배를 이끌 수 있는가?
  • RQ5고도의 트래픽 체인지가 자동 병렬화된 NF에 미치는 성능 영향은 무엇이며, Maestro는 이를 어떻게 완화하는가?

주요 결과

  • Maestro는 PCIe 대역폭 또는 100 Gbps 라인레이트 한계에 도달할 때까지 작은 패킷이 있는 경우에도 코어 수에 비례한 선형 확장성을 달성합니다.
  • 대부분의 패킷이 少수의 장시간 지속 플로우에 속하는 일반적인 인터넷 트래픽 워크로드에서, Maestro의 NAT 구현은 VPP의 46% 대비 55%의 L1 캐시 히트율을 달성하여 RAM 액세스를 감소시킵니다.
  • Maestro의 자동 병렬화된 NF는 본질적으로 병렬화에 불리한 워크로드에서도 하드웨어 트랜잭셔널 메모리 메커니즘을 능가합니다.
  • Maestro가 생성한 상호 무관 아키텍처는 코어 간 조율를 제거하여 일반적인 트래픽 패턴 하에서 락 기반 대안보다 높은 성능을 발휘합니다.
  • Maestro의 접근 방식은 개발자 작업을 단일 구성 단계로 줄여, 캐시 일관성 또는 RSS 튜닝에 대한 저수준 전문 지식 없이도 고성능 NF를 구현할 수 있게 합니다.
  • Maestro는 DPDK 기반 NF 8종을 성공적으로 병렬화하였으며, NAT, 방화벽, 트래픽 모니터 기능을 포함한 다양한 워크로드에서 성능 향상이 검증되었습니다.
Figure 2: Example outputs of the Constraints Generator.
Figure 2: Example outputs of the Constraints Generator.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.