# FIO Benchmarking Script This script performs disk I/O benchmarking using FIO (Flexible I/O Tester) on a specified network-mounted directory. It conducts both random and sequential read/write tests to evaluate the performance of the disk under various conditions. ## Prerequisites - FIO installed on your system. - Bash shell. - Network-mounted directory accessible at the specified mount point. ## Usage 1. Ensure the network mount point specified by the `network_mount` variable or `-m` option exists and is accessible. 2. Modify the script variables as needed to match your testing requirements: - `file_size`: Size of the test file. Default is "8G". - `iodepth`: Number of I/O operations to keep in flight. Default is "16". - `numjobs`: Number of parallel streams for the test. Default is "4". - `runtime`: Limits each test's runtime (in seconds). Default is "300" (5 minutes). - `ioengine`: I/O engine to use. Default is "libaio". 3. Execute the script with the desired options: ```sh ./fio_throughput_test.sh -s -d -j -r -e -m 4. To see all available options, use the -h flag: ```sh ./fio_throughput_test.sh -h ``` ## Script Structure - **Initialization**: Sets up variables for the network mount, log directory, and FIO parameters. - **Benchmark Tests**: - **Random Write Test**: Measures random write performance. - **Random Read Test**: Measures random read performance. - **Sequential Write Test**: Measures sequential write performance. - **Sequential Read Test**: Measures sequential read performance. - **Logging**: Outputs the results to a log file named `fio--YYYY-MM-DD.log` in `$HOME/log/fio-tests`. ## Modifying the Script You may adjust the script parameters such as `file_size`, `iodepth`, `numjobs`, `runtime`, `ioengine`, and `network_mount` based on your specific testing needs or the capabilities of the disk being tested. ## Note This script is designed for use with network-mounted storage. Ensure that your network mount is correctly configured and that the specified mount point is accessible before running the script. ## Running with Slurm To run the FIO benchmarking script on multiple nodes using Slurm, you can use the included batch script.