From 5567c06cd0665f108a3a1f5d29834d647e2aeff1 Mon Sep 17 00:00:00 2001 From: Tullio Sebastiani Date: Tue, 19 Sep 2023 17:27:59 +0200 Subject: [PATCH] reinstated io-hog documentation (#492) --- docs/arcaflow_scenarios.md | 1 + docs/arcaflow_scenarios/io_hog.md | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 docs/arcaflow_scenarios/io_hog.md diff --git a/docs/arcaflow_scenarios.md b/docs/arcaflow_scenarios.md index ac57d6a4..02483d1d 100644 --- a/docs/arcaflow_scenarios.md +++ b/docs/arcaflow_scenarios.md @@ -7,6 +7,7 @@ The engine uses containers to execute plugins and runs them either locally in Do #### Hog scenarios: - [CPU Hog](arcaflow_scenarios/cpu_hog.md) - [Memory Hog](arcaflow_scenarios/memory_hog.md) +- [I/O Hog](arcaflow_scenarios/io_hog.md) ### Prequisites diff --git a/docs/arcaflow_scenarios/io_hog.md b/docs/arcaflow_scenarios/io_hog.md new file mode 100644 index 00000000..d6ebb698 --- /dev/null +++ b/docs/arcaflow_scenarios/io_hog.md @@ -0,0 +1,21 @@ +# I/O Hog +This scenario is based on the arcaflow [arcaflow-plugin-stressng](https://github.com/arcalot/arcaflow-plugin-stressng) plugin. +The purpose of this scenario is to create disk pressure on a particular node of the Kubernetes/OpenShift cluster for a time span. +The scenario allows to attach a node path to the pod as a `hostPath` volume. +To enable this plugin add the pointer to the scenario input file `scenarios/arcaflow/io-hog/input.yaml` as described in the +Usage section. +This scenario takes a list of objects named `input_list` with the following properties: + +- **kubeconfig :** *string* the kubeconfig needed by the deployer to deploy the sysbench plugin in the target cluster +- **namespace :** *string* the namespace where the scenario container will be deployed +**Note:** this parameter will be automatically filled by kraken if the `kubeconfig_path` property is correctly set +- **node_selector :** *key-value map* the node label that will be used as `nodeSelector` by the pod to target a specific cluster node +- **duration :** *string* stop stress test after N seconds. One can also specify the units of time in seconds, minutes, hours, days or years with the suffix s, m, h, d or y. +- **target_pod_folder :** *string* the path in the pod where the volume is mounted +- **target_pod_volume :** *object* the `hostPath` volume definition in the [Kubernetes/OpenShift](https://docs.openshift.com/container-platform/3.11/install_config/persistent_storage/using_hostpath.html) format, that will be attached to the pod as a volume +- **io_write_bytes :** *string* writes N bytes for each hdd process. The size can be expressed as % of free space on the file system or in units of Bytes, KBytes, MBytes and GBytes using the suffix b, k, m or g +- **io_block_size :** *string* size of each write in bytes. Size can be from 1 byte to 4m. + +To perform several load tests in the same run simultaneously (eg. stress two or more nodes in the same run) add another item +to the `input_list` with the same properties (and eventually different values eg. different node_selectors +to schedule the pod on different nodes). To reduce (or increase) the parallelism change the value `parallelism` in `workload.yaml` file \ No newline at end of file