Skip to content

Latest commit

 

History

History
69 lines (35 loc) · 2.16 KB

README.md

File metadata and controls

69 lines (35 loc) · 2.16 KB

Test Environment Preparation

Software

First please make sure you are using our kernel.

You need to download following code and compile yourself, mostly they are written in c/c++ and go. Go version has to >= 1.20.

  • faasd:

    • on switch branch: make local && make install
  • faas-cli:

    • make local-install
  • criu:

    • on switch branch: make -j32 install-criu && cp criu/criu /root/downloads/switch-criu

    • on v3.18: make -j32 install-criu && cp criu/criu /root/downloads/raw-criu

  • containerd

    • on switch branch: BUILDTAGS=no_btrfs make && make install
  • runc

    • on switch branch: make runc && make install
  • faasd-testdriver

    • copy this dir to /root/test/
  • rdma-server

    • make && cp pseudo-mm-rdma-server /root/test

Scripts

Three scripts in util repo is needed to run test:

  • test.sh

    • used to run different test, e.g., azure trace test or functional test
  • test-common.sh

    • define some common shell functions
  • machine-prepare.sh

    • need to run only once for each system boot

However, machine-prepare.sh only start necessary daemon, insert kernel modules, configure softroce (rxe), generate checkpoints and mm-template (called pseudo_mm in kernel code). It will not install or compile software. So you need to compile software at first and put it in the right place.

After boot, run:

  • bash machine-prepare.sh --mem-pool rdma --nic eth0 for rdma based test

  • bash machine-prepare.sh --mem-pool dax --dax-dev /dev/dax0.0 for cxl based test

Then start test, run:

  • bash test.sh --mem 64 for our method

  • base test.sh --mem 64 --gc 10 --baseline for containerd / docker container

  • base test.sh --mem 64 --gc 10 --baseline --start-method criu for starting container with CRIU