Rearchitecting the TCP Stack for I/O-Offloaded Content Delivery
Authors: Taehyun Kim, Deondre Martin Ng, Juzhi Gong, Youngjin Kwon, Minlan Yu, KyoungSoo Park
Groups: KAIST, Havard University
Keywords: Content Delevery Server, I/O operations, TCP, SmartNIC, Offlaod
#1. Motivations
1-1. Backgrounds
- 최근 하드웨어 스펙이 올라와도 content delivery server (DASH server)의 throughput이 여전히 낮음
- 주 원인은 컨텐츠를 전달하기 위해 디스크 데이터가 메인 메모리에 있어야 한다는 것
- 패킷을 보내기 위해 디스크 -> 메모리 -> NIC 순의 DMA가 발생
- 300KB 파일을 전송하는 데에 CPU는 10Gbps bandwidth
vs NVMe를 통해 disk 하나 당 20Gbps bandwidth
- CPU bandwidth로 인해 전체 bandwidth가 제한됨 => CPU bottleneck
- 70% 이상의 CPU 사이클을 컨텐츠를 메모리에 올리기 위한 단순 I/O 연산에 사용 중 (sendfile(), open())
- 싱글 코어를 100% 사용하여도 NVMe 디스크 I/O 연산을 포화시키지 못 함
- Random 한 디스크 데이터 접근을 위한 메타데이터 접근에 CPU 사이클이 소모
1-2. Sollutions
- PCIe가 peer-to-peer DMA가 가능하다는 점을 이용하여 디스크 I/O 연산을 SmartNIC을 활용하여 오프로딩
- 디스크 I/O 연산을 SmartNIC으로 옮김에 따라 페이로드가 SmartNIC에 있어 TCP 스택 또한 SmartNIC으로 오프로딩
- 하지만 SmartNIC의 arm 코어 성능이 호스트의 싱글 코어보다 성능이 낮음
- I/O 연산이 많은 어플리케이션에 대해 "control plane"은 CPU, "data plane"은 SmartNIC에서 프로세싱하는 구조 제안
- CPU를 단순한 I/O 연산이 아닌 복잡한 연산을 계산 + disk I/O로 인한 CPU cache pollution 방지
#2 IO-TCP
2-1. Seperating TCP control and data planes
- SmartNIC의 코어 성능이 떨어지기 때문에 SmartNIC은 단순한 연산 CPU는 복잡한 연산을 하도록 설계
- 따라서 TCP 스택을 control plane과 data plane으로 나눔
- Control plane은 handshake, reliable data transfer, congestion/flow control, error control과 같은 연산
- Data plane은 data buffer 관리, data 세그멘팅, 체크섬 계산 등과 같은 연산
2-2. API functions
2-3. Host stack
asdf
2-4. NIC stack
'논문 > 네트워크 & 시스템' 카테고리의 다른 글
Junction - NSDI'24 (0) | 2024.06.20 |
---|---|
CC-NIC - ASPLOS'24 (0) | 2024.04.26 |
Nu - NSDI'23 (0) | 2024.04.03 |