메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

DiLOS: Do Not Trade Compatibility for Performance in Memory Disaggregation

noriwiki


Wonsup Yoon, Jisu Ok, Jinyoung Oh, Sue Moon, Youngjin Kwon
EuroSys ’23, May 9–12, 2023, Rome, Italy

개요

DILOS는 Unikernel을 사용해서 paging-based memory migration의 성능 한계를 극복한 논문이다.

Motivation

Memory migration에서 자주사용되는 방식인 Kernel-based는 kernel이 computing node와 memory node의 Migration을 담당하도록 하는 방식이다. 그러나 Kernel-user switching이 자주 일어나고, page와 access unit의 semantic gap은 성능 향상을 위한 방해요소로 작동한다.

이 문제를 해결하기 위해서, Library방식의 방식이 사용된다. AIFM은 Page fault를 피하기 위해서 user-level library를 remote memory management를 처리하게 하였다. Semeru와 같은 경우에는 Garbage collection을 외부노드에서 처리해서 page fault수를 줄였다. 그러나 User-level library방식은 Transparent하지 않다.

Main Idea

Unikernel를 통해서 User-level semantic정보를 반영한 Nimble page fault handler를 개발, 이를 통해서 Page fault handling이 kernel까지 가지 않아도, 빠르게 수행할 수 있도록 하여서 page migration의 성능을 올린다.

  • Unikernel을 통해서 Page fault성능을 최대한 끌어 올린다.
  • Prefetching, Backgroiund write-back, Fast RDMA와 같은 기능을 구현한다.
  • Transparent를 위해서 POSIX Layer를 구현한다.
  • 추가적으로 Application의 Semantic을 Prefetching알고리즘의 효율적인 구현에0 반영할 수 있도록 한다.

Design

Fast Page Fault Handler
Page fault handling과 Asynchronous networking이 동시에 일어나도록 하였다. 또한 PF처리에서 Permission체크와 같은 복잡한 Logic을 제거하였다. PTE를 개조해서 Local/Remote정보를 담도록 하여서 Metadata overhead를 줄였다.
Prefetcher, Page Manager, Fast RDMA, Compatibility
기존의 prefetching, page eviction daemon, fast RDMA by bypassing VMM data path를 구현하였다. 또한 Compatibility를 위해서 POSIX Layer를 구현하였다.
App-aware Prefetching Guide
Application의 Semantic정보를 Prefetcher가 참조할 수 있도록 하여서, prefetching algorithm을 customizing할 수 있도록 upcall/downcall매커니즘을 제공하였다. 이 매커니즘들은 System call과는 다르게 Unikernel의 Function콜로 할 수 있도록 하여서 굉장히 빠르게 일어나게 하였다.