This set of scripts and results shows how benchmarks were run to compare native p4d performance with performance when p4d is run inside a Docker container.
Some of this was created manually, some by syncing the workspace in which this README is located.
~/benchmark$ find . -type d
./root
./root/branchsubmit [db.* files for both benchmarks]
./p4 [location of scripts (and results)]
./p4/root
./p4/root/branchsubmit
./p4/ckps [checkpoint downloaded as part of benchmark]
./p4/logs [p4d logs (subdirs per benchmark)]
./p4/logs/branchsubmit
./p4/logs/browse
./p4/bin [p4d and p4 under test (r16.1)]
./p4/clients [root for clients created (subdirs per benchmark)]
./p4/clients/branchsubmit
./p4/clients/branchsubmit/branchsubmit-client
./p4/clients/browse
./p4/journals [p4d journal (subdirs per benchmark)]
./p4/journals/branchsubmit
./p4/journals/browse
./p4/docker [Dockerfile and scripts]
./p4/bin.linux26x86_64 [client application for browse benchmark]
./p4/licenses [license required for browse benchmark]
Note that there is a symlink in ./root/browse so that it shares the db.* files with the other benchmark.
You will not need browse.sh and branchsubmit.sh as the customised versions are in the p4 directory.
Assume current directory is ~/benchmark
Run the following: * ./build_docker.sh
Run the following: cd p4 ./branchsubmit.sh setup ./branchsubmit.sh runme ./branchsubmit.sh runme * ./branchsubmit.sh runme
This creates db.* (takes 10-20 minutes so you don't want to do it all the time). It then runs the native p4d benchmark several times (which warms up file system cache).
Run the Docker version:
Note that the script defaults to the "runme" action.