|
| 1 | +Automation wrapper for fio |
| 2 | + |
| 3 | +Description: |
| 4 | + Fio spawns a number of threads or processes doing a particular type |
| 5 | + of I/O action as specified by the user. fio takes a number of global |
| 6 | + parameters, each inherited by the thread unless other parameters |
| 7 | + provided for that thread overrides the global settings. The typical use of |
| 8 | + fio is to write a job file matching the I/O load one wants to simulate. |
| 9 | + |
| 10 | +Location of underlying workload: https://fio.readthedocs.io/en/latest/fio_doc.html |
| 11 | + benchmark loaded via dnf |
| 12 | + |
| 13 | +Packages required: gcc,numactl,python3,bc,fio |
| 14 | + |
| 15 | +To run: |
| 16 | +``` |
| 17 | +[root@hawkeye ~]# git clone https://github.com/redhat-performance/fio-wrapper |
| 18 | +[root@hawkeye ~]# fio-wrapper/fio/fio_run |
| 19 | +``` |
| 20 | + |
| 21 | +Defaults for the script are the following: |
| 22 | +``` |
| 23 | + devices: No default, if not provided will be prompted |
| 24 | + run time: 120 seconds |
| 25 | + test type: read and write |
| 26 | + ioengine: libaio |
| 27 | + jobs min: 1 |
| 28 | + jobs max: # numa nodes |
| 29 | + block size: 4k and 1024k |
| 30 | + io depth: 1 2 4 8 16 32 |
| 31 | + |
| 32 | +If regression option is selected, only one set of runs with all the disks. |
| 33 | + devices: No default, if not provided will be prompted |
| 34 | + run time: 120 seconds |
| 35 | + test type: read and write |
| 36 | + ioengine: libaio |
| 37 | + jobs min: 1 |
| 38 | + jobs max: # numa nodes |
| 39 | + block size: 4k and 1024k |
| 40 | + io depth: 1 16 64 |
| 41 | +``` |
| 42 | +Options |
| 43 | +``` |
| 44 | +Usage: fio-wrapper/fio/fio_run |
| 45 | + --block_size: comma separated lists of block sizes to use |
| 46 | + --disk_size: size in M, use this as the size of the disk instead of lsblk |
| 47 | + --disks: comma separated list of disks to use. |
| 48 | + --ioengine: comma separated list of ioengines to use |
| 49 | + --iodepth_list: how many ios are allowed outstanding |
| 50 | + --jobs_list: comma separated list of jobs, overrides jobs max and jobs_min, numa_node means use |
| 51 | + number of numa nodes or 2, which ever is greater |
| 52 | + --jobs_max: maximum number of jobs to run |
| 53 | + --jobs_min: minimum number of jobs to run |
| 54 | + --max_disks: maximum number of disks to run with |
| 55 | + --max_disks_only: Perform the run only with maximum disks |
| 56 | + --pbench_samples: number of times pbench is to run each data point, default is 5 |
| 57 | + --regression: regression run |
| 58 | + --runtime: run for the designated period, 60 seconds is the default |
| 59 | + --test_type: type of io doing. |
| 60 | + --use_pbench_version: Instead of running the wrappers version |
| 61 | + of fio, use pbench-fio when pbench is requested |
| 62 | +General options |
| 63 | + --home_parent <value>: Our parent home directory. If not set, defaults to current working directory. |
| 64 | + --host_config <value>: default is the current host name. |
| 65 | + --iterations <value>: Number of times to run the test, defaults to 1. |
| 66 | + --pbench: use pbench-user-benchmark and place information into pbench, defaults to do not use. |
| 67 | + --pbench_user <value>: user who started everything. Defaults to the current user. |
| 68 | + --pbench_copy: Copy the pbench data, not move it. |
| 69 | + --pbench_stats: What stats to gather. Defaults to all stats. |
| 70 | + --run_label: the label to associate with the pbench run. No default setting. |
| 71 | + --run_user: user that is actually running the test on the test system. Defaults to user running wrapper. |
| 72 | + --sys_type: Type of system working with, aws, azure, hostname. Defaults to hostname. |
| 73 | + --sysname: name of the system running, used in determining config files. Defaults to hostname. |
| 74 | + --tuned_setting: used in naming the tar file, default for RHEL is the current active tuned. For non |
| 75 | + RHEL systems, default is none. |
| 76 | + --usage: this usage message. |
| 77 | +``` |
| 78 | + |
| 79 | +Note: The script does not install pbench for you. You need to do that manually. |
0 commit comments