podman/contrib/perftest
Peter Hunt 81804fc464 pod infra container is started before a container in a pod is run, started, or attached.
Prior, a pod would have to be started immediately when created, leading to confusion about what a pod state should be immediately after creation. The problem was podman run --pod ... would error out if the infra container wasn't started (as it is a dependency). Fix this by allowing for recursive start, where each of the container's dependencies are started prior to the new container. This is only applied to the case where a new container is attached to a pod.

Also rework container_api Start, StartAndAttach, and Init functions, as there was some duplicated code, which made addressing the problem easier to fix.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-02-15 16:39:24 -05:00
..
main.go pod infra container is started before a container in a pod is run, started, or attached. 2019-02-15 16:39:24 -05:00
README.md perf test a stress test to profile CPU load of podman 2018-12-19 16:05:21 +09:00

perftest : tool for benchmarking and profiling libpod library

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