@@ -228,3 +228,74 @@ spec:
228
228
extraArgs:
229
229
- --tclass=96
230
230
` ` `
231
+
232
+ # ## Filesystem performance characteristics
233
+
234
+ Runs filesystem performance benchmarking using [fio](https://fio.readthedocs.io). All
235
+ available `spec` options are given below. Fio configration options match broadly with
236
+ those defined in the fio documentation.
237
+
238
+ Setting `.spec.volumeClaimTemplate` allows the provision of stable storage using
239
+ ` PersistentVolumes` provisioned by a [`PersistentVolume`](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
240
+ Provisioner.
241
+
242
+ When `spec.volumeClaimTemplate.accessModes` contains `ReadWriteMany`, this benchmark
243
+ will create a single `PersistentVolume` per `BenchmarkSet` iteration, and attach all
244
+ worker pods participting in the set (equal to `spec.numWorkers`) to the same volume.
245
+ Otherwise, a `PersistentVolume` per-pod is created and attached to each worker pod
246
+ participating in the benchmark.
247
+
248
+ ` ` ` yaml
249
+ apiVersion: perftest.stackhpc.com/v1alpha1
250
+ kind: Fio
251
+ metadata:
252
+ name: fio-filesystem
253
+ spec:
254
+ # fio benchmark configuration options
255
+ direct: 1
256
+ iodepth: 8
257
+ ioengine: libaio
258
+ nrfiles: 1
259
+ numJobs: 1
260
+ bs: 1M
261
+ rw: read
262
+ percentageRandom: 100
263
+ runtime: 10s
264
+ rwmixread: 50
265
+ size: 1G
266
+
267
+ # kube-perftest benchmark configuration
268
+ # options
269
+ numWorkers: 1
270
+ thread: false
271
+ hostNetwork: false
272
+
273
+ # PersistentVolume configuration options
274
+ volumeClaimTemplate:
275
+ accessModes:
276
+ - ReadWriteOnce
277
+ storageClassName: csi-cinder
278
+ resources:
279
+ requests:
280
+ storage: 5Gi
281
+ ` ` `
282
+
283
+ # # Operator development
284
+
285
+ ```
286
+ # Install dependencies in a virtual environment
287
+ python3 -m venv venv
288
+ source venv/bin/activate
289
+ pip install -U pip
290
+ pip install -r python/requirements.txt
291
+ pip install -e python
292
+
293
+ # Set the default image tag
294
+ export KUBE_PERFTEST__ DEFAULT_IMAGE_TAG=<dev branch name >
295
+
296
+ # Set the default image pull policy
297
+ export KUBE_PERFTEST__ DEFAULT_IMAGE_PULL_POLICY=Always
298
+
299
+ # Run the operator
300
+ kopf run -m perftest.operator -A
301
+ ```
0 commit comments