Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
196 changes: 150 additions & 46 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ WITHUPF:=
WITHLAZY:=
WITHSNAPSHOTS:=-snapshotsTest
CTRDLOGDIR:=/tmp/ctrd-logs
FIRECRACKER_BIN?=/usr/local/bin/firecracker-containerd
FIRECRACKER_CONFIG_PATH?=/etc/firecracker-containerd/config.toml

vhive: proto
go install github.com/vhive-serverless/vhive
Expand All @@ -47,37 +49,109 @@ test-orch: test test-man

test:
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log.err &
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) -short $(EXTRAGOARGS)
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log.err &
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) -short $(EXTRAGOARGS) -args $(WITHSNAPSHOTS)
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_upf_log.out 2>$(CTRDLOGDIR)/fccd_orch_upf_log.err &
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) -short $(EXTRAGOARGS) -args $(WITHSNAPSHOTS) $(WITHUPF)
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_upf_lazy_log.out 2>$(CTRDLOGDIR)/fccd_orch_upf_lazy_log.err &
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) -short $(EXTRAGOARGS) -args $(WITHSNAPSHOTS) $(WITHUPF) $(WITHLAZY)
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err &
sudo env "PATH=$(PATH)" go test -short $(EXTRAGOARGS) -run TestProfileSingleConfiguration -args -test -loadStep 100 && sudo rm -rf bench_results
sudo env "PATH=$(PATH)" go test -short $(EXTRAGOARGS) -run TestProfileIncrementConfiguration -args -test -vmIncrStep 4 -maxVMNum 4 -loadStep 100 && sudo rm -rf bench_results
sudo env "PATH=$(PATH)" go test -short $(EXTRAGOARGS) -run TestBindSocket
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log.err" \
go test $(EXTRATESTFILES) -short $(EXTRAGOARGS)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log.err" \
go test $(EXTRATESTFILES) -short $(EXTRAGOARGS) -args $(WITHSNAPSHOTS)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_upf_log.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_upf_log.err" \
go test $(EXTRATESTFILES) -short $(EXTRAGOARGS) -args $(WITHSNAPSHOTS) $(WITHUPF)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=/usr/local/bin/firecracker-containerd" \
"FIRECRACKER_CONFIG_PATH=/etc/firecracker-containerd/config.toml" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_upf_lazy_log.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_upf_lazy_log.err" \
go test $(EXTRATESTFILES) -short $(EXTRAGOARGS) -args $(WITHSNAPSHOTS) $(WITHUPF) $(WITHLAZY)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test -short $(EXTRAGOARGS) -run TestProfileSingleConfiguration \
-args -test -loadStep 100 && sudo rm -rf bench_results

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test -short $(EXTRAGOARGS) -run TestProfileIncrementConfiguration \
-args -test -vmIncrStep 4 -maxVMNum 4 -loadStep 100 && sudo rm -rf bench_results

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test -short $(EXTRAGOARGS) -run TestBindSocket

test-man:
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS_NORACE) -run TestParallelServe
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestServeThree
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestServeThree -args $(WITHSNAPSHOTS)
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_both_log_man_travis.out 2>$(CTRDLOGDIR)/fccd_orch_both_log_man_travis.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestServeThree -args $(WITHSNAPSHOTS) $(WITHUPF)
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_both_lazy_log_man_travis.out 2>$(CTRDLOGDIR)/fccd_orch_both_lazy_log_man_travis.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestServeThree -args $(WITHSNAPSHOTS) $(WITHUPF) $(WITHLAZY)
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.err" \
go test $(EXTRAGOARGS_NORACE) -run TestParallelServe

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.err" \
go test $(EXTRAGOARGS) -run TestServeThree

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_man_travis.err" \
go test $(EXTRAGOARGS) -run TestServeThree -args $(WITHSNAPSHOTS)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_both_log_man_travis.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_both_log_man_travis.err" \
go test $(EXTRAGOARGS) -run TestServeThree -args $(WITHSNAPSHOTS) $(WITHUPF)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_both_lazy_log_man_travis.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_both_lazy_log_man_travis.err" \
go test $(EXTRAGOARGS) -run TestServeThree -args $(WITHSNAPSHOTS) $(WITHUPF) $(WITHLAZY)

test-skip:
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_man_skip.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_man_skip.err &
Expand All @@ -92,25 +166,55 @@ test-skip:

bench:
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestBenchServe -args -iter 1 $(WITHSNAPSHOTS) -benchDirTest configBase -metricsTest -funcName helloworld && sudo rm -rf configBase
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestBenchServe -args -iter 1 $(WITHSNAPSHOTS) $(WITHUPF) -benchDirTest configREAP -metricsTest -funcName helloworld && sudo rm -rf configREAP
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestBenchServe -args -iter 1 $(WITHSNAPSHOTS) $(WITHLAZY) -benchDirTest configLazy -metricsTest -funcName helloworld && sudo rm -rf configLazy
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR)

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test $(EXTRAGOARGS) -run TestBenchServe -args -iter 1 $(WITHSNAPSHOTS) -benchDirTest configBase -metricsTest -funcName helloworld && sudo rm -rf configBase

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test $(EXTRAGOARGS) -run TestBenchServe -args -iter 1 $(WITHSNAPSHOTS) $(WITHUPF) -benchDirTest configREAP -metricsTest -funcName helloworld && sudo rm -rf configREAP

sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestBenchParallelServe -args $(WITHSNAPSHOTS) -benchDirTest configBase -metricsTest -funcName helloworld && sudo rm -rf configBase
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestBenchParallelServe -args $(WITHSNAPSHOTS) $(WITHUPF) -benchDirTest configREAP -metricsTest -funcName helloworld && sudo rm -rf configREAP
./scripts/clean_fcctr.sh
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out 2>$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err &
sudo env "PATH=$(PATH)" go test $(EXTRAGOARGS) -run TestBenchParallelServe -args $(WITHSNAPSHOTS) $(WITHLAZY) -benchDirTest configLazy -metricsTest -funcName helloworld && sudo rm -rf configLazy
./scripts/clean_fcctr.sh
sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test $(EXTRAGOARGS) -run TestBenchServe -args -iter 1 $(WITHSNAPSHOTS) $(WITHLAZY) -benchDirTest configLazy -metricsTest -funcName helloworld && sudo rm -rf configLazy

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test $(EXTRAGOARGS) -run TestBenchParallelServe -args $(WITHSNAPSHOTS) -benchDirTest configBase -metricsTest -funcName helloworld && sudo rm -rf configBase

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test $(EXTRAGOARGS) -run TestBenchParallelServe -args $(WITHSNAPSHOTS) $(WITHUPF) -benchDirTest configREAP -metricsTest -funcName helloworld && sudo rm -rf configREAP

sudo env \
"PATH=$(PATH)" \
"FIRECRACKER_BIN=$(FIRECRACKER_BIN)" \
"FIRECRACKER_CONFIG_PATH=$(FIRECRACKER_CONFIG_PATH)" \
"LOG_OUT=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.out" \
"LOG_ERR=$(CTRDLOGDIR)/fccd_orch_noupf_log_bench.err" \
go test $(EXTRAGOARGS) -run TestBenchParallelServe -args $(WITHSNAPSHOTS) $(WITHLAZY) -benchDirTest configLazy -metricsTest -funcName helloworld && sudo rm -rf configLazy

test-man-bench:
$(MAKE) test-man
Expand Down
15 changes: 15 additions & 0 deletions bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ var (
)

func TestBenchParallelServe(t *testing.T) {
if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

var (
servedTh uint64
pinnedFuncNum int
Expand Down Expand Up @@ -124,6 +129,11 @@ func TestBenchParallelServe(t *testing.T) {
}

func TestBenchWarmServe(t *testing.T) {
if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

var (
servedTh uint64
pinnedFuncNum int
Expand Down Expand Up @@ -189,6 +199,11 @@ func TestBenchWarmServe(t *testing.T) {
}

func TestBenchServe(t *testing.T) {
if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

var (
servedTh uint64
pinnedFuncNum int
Expand Down
10 changes: 10 additions & 0 deletions manual_cleanup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ import (
)

func TestParallelServe(t *testing.T) {
if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

var (
servedTh uint64 = 1
pinnedFuncNum int
Expand Down Expand Up @@ -67,6 +72,11 @@ func TestParallelServe(t *testing.T) {
}

func TestServeThree(t *testing.T) {
if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

fID := "200"
var (
servedTh uint64 = 1
Expand Down
15 changes: 15 additions & 0 deletions perf_bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@ func TestProfileIncrementConfiguration(t *testing.T) {

t.Skip("Skipping TestProfileIncrementConfiguration")

if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

var (
idx, rps int
pinnedFuncNum int
Expand Down Expand Up @@ -136,6 +141,11 @@ func TestProfileSingleConfiguration(t *testing.T) {

t.Skip("Skipping TestProfileSingleConfiguration")

if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

var (
servedTh uint64
pinnedFuncNum int
Expand Down Expand Up @@ -211,6 +221,11 @@ func TestColocateVMsOnSameCPU(t *testing.T) {
}

func TestBindSocket(t *testing.T) {
if err := initFirecrackerContainerd(); err != nil {
t.Fatalf("Failed to initialize firecracker containerd: %v", err)
}
defer cleanup()

var (
procStr, sep string
servedTh uint64
Expand Down
Loading
Loading