Skip to content

Can I run PerfKitBenchmarker on my local machine or data center?

ehankland edited this page Sep 7, 2016 · 8 revisions

Yes you can use what is called "static machines". Static machine were added to allow any machine with SSH access to be benchmarked by PKB. You can run on static machines with or without installing software.

The README.md file has some examples of use. You can also mix static and provisioned machines.

Here is an example use + config...

./pkb.py --benchmarks=iperf --static_vm_file=Siberia.json

Siberia.json file:

[
  {
    "ip_address": "192.168.1.100",
    "user_name": "connormccoy",
    "keyfile_path": "/home/connormccoy/.ssh/google_compute_engine",
    "internal_ip": "10.240.223.37"
  },
  {
    "ip_address": "192.168.1.101",
    "user_name": "connormccoy",
    "keyfile_path": "/home/connormccoy/.ssh/google_compute_engine",
    "internal_ip": "10.240.234.189"
  }
]

You can read more here https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/blob/master/README.md

There are other options you can specify like installing software (or not), using only internal IPs, disk config, etc. See all the options here - https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/blob/master/perfkitbenchmarker/static_virtual_machine.py

The full list of options:

      ip_address: The ip address of the vm.
      user_name: The username of the vm that the keyfile corresponds to.
      keyfile_path: The absolute path of the private keyfile for the vm.
      internal_ip: The internal ip address of the vm.
      zone: The zone of the VM.
      local_disks: A list of the paths of local disks on the VM.
      scratch_disk_mountpoints: A list of scratch disk mountpoints.
      ssh_port: The port number to use for SSH and SCP commands.
      install_packages: If false, no packages will be installed. This is
          useful if benchmark dependencies have already been installed.

The way PKB works is first to uses machines from the static file and then uses machines from whatever cloud you specify. For example if you run a VM to VM benchmark but only configure one machine in the static_machine file you will use that one machine and also one from the Cloud.