-
Notifications
You must be signed in to change notification settings - Fork 518
Running on Docker
You can run any benchmark inside a Docker container by calling pkb.py
with the argument --os_type=ubuntu_container
. Right now, the only Docker image supported is the default ubuntu:latest. An example run on GCP would be:
$ ./pkb.py --project=<GCP project ID> --benchmarks=iperf --os_type=ubuntu_container
It is important to keep in mind that there are two separate images: the VM image and the container image. When running PerfKit with Docker, you can still specify any VM image with --image=
, but this will refer specifically to the image on the remote Virtual Machine. Docker's container image will still be Ubuntu.
Container support was implemented by creating a ContainerizedDebianMixin class inheriting from DebianMixin. This class starts a detached Docker container upon startup of the VM, and then prepends every remote command sent by the benchmarks with docker exec
so that the command runs within the container instead of the VM.
Besides this, methods such as RemoteCopy, which copies files from the controller to a VM and vice versa, and MoveFile, which copies files from a VM to another, get an extra step that copies files to/from the container, using a mounted work directory that is shared between the VM and the container.