If you suspect your blobstore is not performing adequately, we recommend you run the following benchmarking utility in Tanzu Application Service for VMs (TAS for VMs):
bosh -d <cf-deployment> ssh cloud_controller/0 -c "sudo /var/vcap/jobs/cloud_controller_ng/bin/perform_blobstore_benchmarks"
Replacing "<cf-deployment>" with your environments TAS deployment name.
This utility runs a small series of performance experiments that emulate the load that a Cloud Controller (CC) might put on a blobstore.
The perform_blobstore_benchmarks utility runs several experiments to emulate the load that a Cloud Controller (CC) might put on a blobstore. These experiments are defined below:
Experiment | Explanation |
---|---|
Resource match | Resource match calls actual CC resource matching code against 64Mb of bogus application code. Resource matching is a process where CC compares package contents by asking the blobstore about the existence of each package file using its checksum. |
Resource match | Uploads and then downloads a 64Mb zipfile of the aforementioned application code. |
Buildpack download | Uploads and then downloads a 64Mb zipfile of the aforementioned application code. |
Droplet upload and download | Uploads and then downloads the 64Mb zipfile as a droplet. |
Big droplet upload and download | Uploads and then downloads a 496Mb zipfile as a droplet. |
The following is output from running the perform_blobstore_benchmarks utility against a local, virtualized, singleton-blobstore backed by nginx and WebDAV:
resource match timing: 1217.462632979732ms package upload timing: 13.919375953264534ms package download timing: 9.604769991710782ms downloaded 20 buildpacks, total 89514967 bytes read buildpack download timing: 1801.0983020067215ms droplet upload timing: 7.320249045733362ms droplet download timing: 2.5244889548048377ms big droplet upload timing: 2160.5330359889194ms big droplet download timing: 3950.6868550088257ms