22.2.2 기본 RMW 패키지 기준 Fast DDS 및 Cyclone DDS 메모리 풋프린트 효율성 비교
1. 개요
ROS2 아키텍처는 RMW(ROS Middleware) 추상화 인터페이스를 통해 다양한 DDS(Data Distribution Service) 벤더의 프로토콜 스택을 동적으로 선택할 수 있는 유연성을 제공한다. ROS2 Foxy 및 Galactic 배포판에서는 Eclipse Foundation의 Cyclone DDS가 기본(Default) 미들웨어로 채택되었으나, ROS2 Humble Hawksbill 배포판부터는 eProsima의 Fast DDS가 기본 RMW로 재지정되었다. 본 절에서는 이러한 아키텍처 전환의 기술적 배경이 되는 Fast DDS와 Cyclone DDS 간의 메모리 풋프린트(Memory Footprint), 동적 할당 오버헤드, 그리고 자원 점유 효율성을 학술적 관점에서 상호 비교 분석한다.
2. 메모리 할당 및 관리 구조의 근본적 차이
2.1 eProsima Fast DDS의 정적 풀링(Static Pooling) 체계
Fast DDS는 내장된 RTPS(Real-Time Publish-Subscribe) 와이어 프로토콜의 구현에 있어 런타임 메모리 단편화(Fragmentation)를 극도로 억제하는 아키텍처를 지향한다.
- 메모리 할당 전략: 네트워크 송수신 버퍼 및 히스토리 캐시(History Cache) 유지 시 동적 메모리 할당(
malloc,new)을 런타임에 수행하는 것을 제한한다. 대신, 노드 초기화 단계에서 최대 큐 크기(Queue Size)에 비례하는 메모리를 사전에 할당받아 풀링(Pooling)하는 접근법을 사용한다. - 메모리 풋프린트 특성: 초기 로드 시퀀스에서 프로세스의 VSS(Virtual Set Size) 및 RSS(Resident Set Size) 점유율이 일시적으로 급증하는 경향이 관찰된다. 그러나 노드가 안정 상태(Steady State)에 진입한 이후에는 메모리의 증감이 거의 발생하지 않아, 하드 리얼타임(Hard Real-time) 운영체제에서 OOM(Out of Memory) 킬러에 의한 시스템 강제 종료 위험을 최소화할 수 있다.
2.2 Eclipse Cyclone DDS의 동적-탄력적(Elastic) 할당 모델
Cyclone DDS는 메모리 효율성을 시스템 부하에 따라 유연하게 조절하는 탄력적 아키텍처에 중점을 둔다.
- 메모리 할당 전략: 데이터 트래픽이 평이한 레벨일 때는 최소한의 커널 리소스만을 점유하고, 트래픽 버스트(Traffic Burst)가 발생할 때 운영체제에 추가적인 힙 메모리(Heap Memory)를 요청하여 동적으로 버퍼를 확장한다.
- 메모리 풋프린트 특성: 초기 구동 시 차지하는 RSS 풋프린트 사이즈가 Fast DDS에 대비하여 매우 미니멀(Minimal)하다. 이는 단일 호스트 내에 수십 개의 매우 가벼운 노드들이 밀집되어 동작하는 소규모 프로토타이핑 환경이나 SWaP가 극단적으로 제약된 엣지 컨트롤러에서 압도적인 공간적 효율성을 발휘한다.
3. 대역폭 및 트래픽 양상에 따른 효율성 비교 분석
자율 에이전트 드론 시스템에서 센서 데이터(예: 고해상도 포인트 클라우드, IMU 스트림)의 대용량 퍼블리싱(Publishing) 시 발생하는 메모리 효율성 특성은 두 미들웨어 간에 매우 이질적이다.
3.1 고대역폭 데이터 스루풋(Throughput) 환경
- Zero-Copy 오버헤드: Fast DDS는 데이터 전송 계층에 데이터-공유(Data-Sharing) 구조체 메모리를 적용하여, 동일한 호스트 내 브로커 없는(Broker-less) 프로세스 간 통신 시 직렬화(Serialization)/역직렬화(Deserialization) 및 커널 스페이스 복사를 생략한 진정한 제로 카피(Zero-Copy) 성능을 극대화한다. 이로 인하여 대용량 비전 데이터 전송 시 시스템 메모리 대역폭의 병목이 획기적으로 낮아지는 효율성을 달성한다.
- 메모리 단편화: Cyclone DDS는 대용량 메시지를 처리하는 과정에서 연속된 네트워크 패킷 분할(Fragmentation) 및 재조립(Reassembly) 시 잦은 시스템 콜(System Call)을 발생시킨다. 장시간 작동 시 C 라이브러리의 힙 영역에서 단편화가 일어나 상대적 캐시 미스(Cache Miss) 빈도가 증가할 여지가 존재한다.
3.2 멀티캐스트(Multicast) 및 노드 다중 송수신 환경
- 수십 개 이상의 서브스크라이버가 하나의 토픽을 구독하는 다중 라우팅 환경에서 Cyclone DDS는 멀티캐스트 트래픽 처리 능력이 태생적으로 탁월하게 최적화되어 있다. 이 맥락에서는 노드 당 유지해야 하는 소켓 컨텍스트(Socket Context) 메모리가 상대적으로 작아, 노드 수의 기하급수적 증가 대비 메모리 풋프린트의 선형적 팽창 곡선의 기울기가 Fast DDS보다 낮게 평가된다.
4. 결론
ROS2 Humble 버전에서 Fast DDS가 기본 미들웨어로 채택된 것은, 자율 주행 및 항공 로보틱스에서 요구되는 ’실행 시간의 예측 가능성(Predictability)’을 확보하기 위해 초기 메모리 점유율을 다소 희생하더라도 런타임 힙 할당을 최소화하려는 공학적 결단에 기반한다. 반면 Cyclone DDS는 경량 시스템에서의 높은 효율성과 압도적인 멀티캐스트 네트워크 퍼포먼스를 제공하는 데 있어 유리한 위치를 고수하고 있다. 따라서 시스템 엔지니어는 드론의 온보드 컴퓨터(SBC) 가용 RAM 용량과 노드 토폴로지 밀도(Density)를 종합적으로 계량하여 두 미들웨어 간의 취사선택을 단행해야 한다.