Fio - Flexible I/O tester¶
fio is a tool that will spawn a number of threads or processes doing a particular type of I/O action as specified by the user. The typical use of fio is to write a job file matching the I/O load one wants to simulate.
With the fio benchmark you can measure the I/O performance of the disks used in your Kubernetes cluster.
Mode of operation¶
Kubestone generates a Kubernetes Job from each fio CR that will run a single pod with the defined fio job.
customJobFiles are specified in the CR a ConfigMap will be created to hold the content of the job files. The entries in the ConfigMap named using the following pattern:
customJobN, where N is the item in the customJobFiles list.
Volume defines the volume to use for benchmarking.
Volume.VolumeSource provides way to mount already existing PVCs, HostPath, EmptyDir (and others) to the benchmark.
Volume.PersistentVolumeClaimSpec is defined (and
Volume.VolumeSource.PersistentVolumeClaim.ClaimName set to 'GENERATED') a new PVC will be created for the benchmark. Note: The created volume is not freed up or removed after the benchmark run.
You can find configuration examples in the GitHub repository.
To run a sample benchmark with PVC mode, the following command can be used:
$ kustomize build github.com/xridge/kubestone/config/samples/fio/overlays/pvc | kubectl create --namespace kubestone -f -
Please refer to the quickstart guide for further details.
The complete documentation of fio CR can be found in the API Docs.
Docker Image for Fio is provided via xridge's fio repository.
Fio is licensed as GPLv2.