perftest uses libpod as golang library and perform stress test and profile for CPU usage.
Build:
# cd $GOPATH/src/github.com/containers/libpod/contrib/perftest
# go build
# go install
Usage:
# perftest -h
Usage of perftest:
-count int
count of loop counter for test (default 50)
-image string
image-name to be used for test (default "docker.io/library/alpine:latest")
e.g.
# perftest
runc version spec: 1.0.1-dev
conmon version 1.12.0-dev, commit: b6c5cafeffa9b3cde89812207b29ccedd3102712
preparing test environment...
2018/11/05 16:52:14 profile: cpu profiling enabled, /tmp/profile626959338/cpu.pprof
Test Round: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
Profile data
Create Start Stop Delete
Min 0.23s 0.34s 2.12s 0.51s
Avg 0.25s 0.38s 2.13s 0.54s
Max 0.27s 0.48s 2.13s 0.70s
Total 12.33s 18.82s 106.47s 26.91s
2018/11/05 16:54:59 profile: cpu profiling disabled, /tmp/profile626959338/cpu.pprof
Analyse CPU profile.
# go tool pprof -http=":8081" $GOPATH/src/github.com/containers/libpod/contrib/perftest/perftest /tmp/profile626959338/cpu.pprof