1this is a multithreaded disk i/o microbenchmark. it requires O_DIRECT, 2pread/pwrite, and pthreads. 3 4WARNING: this will destroy data if used incorrectly. 5 6usage: ./randomio filename nr_threads write_fraction_of_io fsync_fraction_of_writes io_size nr_seconds_between_samples 7 8filename 9 filename or device to read/write. 10 11write_fraction_of_io 12 what fraction of i/o should be writes. for example 0.25 for 13 25% write traffic. 14 15fsync_fraction_of_writes 16 what fraction of writes should be fsync'd. 17 18io_size 19 how many bytes to read/write. must be a positive multiple 20 of 512 bytes 21 22nr_seconds_between_samples 23 how many seconds to average samples over. recommended 10 or 24 more. 25 26 27for example: 28 29% ./randomio /dev/sdb 8 0.5 1 4096 10 30 total | read: latency (ms) | write: latency (ms) 31 iops | iops min avg max sdev | iops min avg max sdev 32-------+----------------------------------+--------------------------------- 33 86.9 | 43.2 5.9 134.4 494.4 94.2 | 43.7 0.3 49.0 335.9 53.2 34 85.4 | 40.9 7.7 146.8 831.4 103.3 | 44.5 0.3 45.2 243.0 44.8 35 84.5 | 43.2 4.2 138.4 1126.4 112.5 | 41.3 0.2 46.8 263.2 50.7 36 37