gVisor Review

2019021166 이민예

Blending Containers and Virtual Machines : A Study of Firecracker and gVisor 연구에서는 LXC, FireCracker, gVisor 에 대하여 CPU 사용률, 네트워킹, 메모리 관리 및 파일 접근성 측면에서 성능을 비교한 연구이다.

LXC 는 단일 컨트롤 호스트 위에서 여러개의 독립적인 컨테이너 기술을 실행시키기 위한 가상화 기술이다. FireCracker 는 사용자 공간에서 실행되며 Linux 커널 기반의 가상 머신인 KVM(Linux Kernel-based Virtual Machine)을 사용하여 microVM을 생성합니다. 각 microVM은 빠른 시작 시간과 낮은 메모리 오버헤드를 통해 수천 개의 microVM을 동일한 시스템에 패키징할 수 있습니다. gVisor

  • user space kernel (Sentry) 를 Go로 구현하였으며,

  • Syscall 이 들어오면, Sentry 로 리다이렉트되면서 어플리케이션이 호스트와 직접 Syscall 을 사용하는 것을 방지한다. 이를 위한 두가지 방법이 있다.

    • ptrace-mode : Linux Kernel 에서 ptrace 를 사용함

    • KVM-mode : 성능이 더 좋음.

CPU Workload

LXC, FireCracker, gVisor 모두 CPU 성능은 크게 다르지 않는다.

Networking

  • Bandwidth : Firecracker > LXC > gVisor

  • latency (Round-Trip Time, RTT) : LXC < gVisro < Firecracker

Memory Management

LXC 는 커널 코드를 매우 높은 Hit rate 로 접근하면서, 덜 고립적이지만, 높은 성능을 가지고 있다.

Last updated