#!/bin/bash create_file() { local dir=$1 local direct=$2 local i=0 mkdir -p $dir >/dev/null 2>&1 local STARTTIME=$(date +%s) while xfs_io -f $direct -c "pwrite 0 1k" $dir/file_$i >/dev/null 2>&1; do let i=$i+1 done local ENDTIME=$(date +%s) echo "Created $i files before returning error, time taken $(($ENDTIME - $STARTTIME))" } dir=/media/scratch/testdir/ loop=1 i=1 while [ $i -le $loop ]; do nr_worker=8 while [ $nr_worker -gt 0 ]; do # half buffered I/O half direct I/O if [ `expr $nr_worker % 2` -eq 0 ]; then create_file $dir/$nr_worker -d & else create_file $dir/$nr_worker & fi let nr_worker=$nr_worker-1 done wait STARTTIME=$(date +%s) rm -rf $dir ENDTIME=$(date +%s) echo "rming took $(($ENDTIME - $STARTTIME)) seconds" let i=$i+1 done