manpagez: man pages & more
man Mio(1)
Home | html | info | man
Mio(1)                                                                  Mio(1)




NAME

       Mio - Multi-stream streaming I/O test


SYNOPSIS

       Mio [options] filename [filename...]


DESCRIPTION

       Mio  is  a  utility that can be used to measure the I/O performance, in
       terms of bandwidth, of a system, I/O  infrastructure,  disk  subsystem,
       disk  device  and/or  file system.  Mio uses pthreads to asynchronously
       queue requests to a stream or streams.

       Each file name specified on the command line corresponds to  a  stream.
       The  -q option defaults to 2 as described below, and specifies the num-
       ber of asynchronous read or write requests  that  are  queued  to  each
       stream.   A file name can represent a regular file, or a block or char-
       acter device (see NOTES).  By default, Mio will  issue  read  requests,
       with a -w option required for writes.

       Upon  completion,  Mio will print a summary of I/O performance for each
       stream as well as the aggregate performance off all  streams.   Because
       the  aggregate  performance  is the performance of all streams over the
       test run time, it may not reflect the sum of the individual streams.



OPTIONS

       -?     Display usage.

       -b buffer_size
              Specify the I/O buffer size to use.  This value  represents  the
              size of each I/O request in bytes.  The default buffer size val-
              ue is 1048576 bytes.  Optionally, a  single  letter  suffix  can
              represent  bytes  in units.  Mio single letter unit suffixes are
              as follows.

                 k    KB   10^3              1,000
                 m    MB   10^6          1,000,000
                 b    GB   10^9      1,000,000,000
                 K    KiB  2^10              1,024
                 M    MiB  2^20          1,048,576
                 B    GiB  2^30      1,073,741,824

       -B     Do buffered I/O.  By default, Mio will  open  files  for  direct
              I/O.  See NOTES below for more information on direct I/O.

       -c     Create  the  file(s).   This is useful and necessary for regular
              files, as they must be created before they can be read or  writ-
              ten.  The -c option is valid only when specified with the -w op-
              tion.

       -d[dd] Run in debug mode. The more "d's" specified, the more debug  in-
              formation is printed.

       -e csv_file
              Write  results  to the specified .csv file; one that can be read
              by Microsoft Excel or other spreadsheet application. Data is ap-
              pended  to  the specified csv file which must exist.  See the -E
              option.

       -E csv_file
              Create and write results to the  specified  .csv  file.  A  .csv
              file,  (comma separated value) is a file that can be consumed by
              a spreadsheet application like  Microsoft  Excel.   The  maximum
              number of streams that can be recorded in a .csv file is limited
              to 16 unless the -u option is specified.

       -f     Fsync on close.  The default is no fsync.

       -I file_offset_increment
              Set the file offset increment for each I/O.  For  example,  when
              set  to  zero, we repetitively do I/O to the same file location.
              The default is to use the buffer size.   An  Mio  single  letter
              unit suffix may be specified.

       -n nios
              Specifies the number of I/O requests.  The default is 1024.

       -O file_offset
              Start  the  I/O  at the given file offset.  An Mio single letter
              unit suffix may be specified.  The default starting file  offset
              for  a  regular  file is zero.  The default starting file offset
              for a block device is two times the I/O buffer size.   This  al-
              lows  writing  to a block device without destroying StorNext la-
              bels (writing to the block device  will,  however,  destroy  the
              file system).

       -p     Preallocate  the  file  using the StorNext CvApi_VerifyAlloc API
              call.  The file size will correspond to the number of I/Os times
              the  buffer  size.   This  option  is supported only for regular
              files on a StorNext file system.

       -q queue_depth
              Queue the specified number of I/O requests on each stream.   The
              default is 2.  The maximum is currently 256.

       -r rtios
              Set  realtime  mode by setting the number of I/O's per second to
              the specified value.  Realtime mode is available only for  regu-
              lar  files  on  the  StorNext file system.  An Mio single letter
              unit suffix may be specified.

       -R     Record I/O response times. Mio will record the I/O response time
              for  each I/O request and increment a counter in the correspond-
              ing response time bucket.  I/O response time  buckets  are  then
              printed for each stream along with the transfer rate summary.

       -S seconds
              Run  the test for the maximum number of seconds specified.  This
              only has an effect as a maximum, in that, if the  test  has  not
              completed  the  specified number of requests after the specified
              time.

       -t total_data
              Terminate the test after the specified amount of data  has  been
              moved  rather  than  a given number of requests.  This option is
              not compatible with the -n option.  An Mio  single  letter  unit
              suffix may be specified.

       -T tag string
              Specify  a tag string that will be written to the output. An ad-
              ditional line containing the specified tag string will be  writ-
              ten in the test summary.  If the -E option is specified, the tag
              string will also be written to the .csv file.

       -u     Specify that the unlimited streams format be used for csv files.
              Each stream's data is written to a new line in the file allowing
              for greater than 16 streams.

       -w     Specify that writes are done.  A regular file must exist, or the
              -c  option must be specified to create the file.  The default is
              to read.

       -W write_mask
              The specified write mask will result in writes on streams  where
              bits  are  set  and  reads on streams where bits are clear.  The
              write mask may be specified in hexadecimal,  octal,  or  decimal
              but  is  limited to 64 bits, hence 64 streams.  The -W option is
              incompatible with the -c option and all files must exist.


EXAMPLES

       Create and issue the default number of writes to four files/streams:

          per1-# Mio -cw /jhb/f0 /jhb/f1 /jhb/f2 /jhb/f3
          Mio: Timing 4 stream(s) of 1024 x 1M direct writes queued 2 deep
              stream[0]:           f0: write  1073.74 MBytes @   256.44 MBytes/Second
              stream[1]:           f1: write  1073.74 MBytes @   228.43 MBytes/Second
              stream[2]:           f2: write  1073.74 MBytes @   265.04 MBytes/Second
              stream[3]:           f3: write  1073.74 MBytes @   242.18 MBytes/Second
          Mio: Aggregate:  4294.97 Mbytes @ 913.72 MBytes/Second

       Issue the default number of reads to the four previously created files:

          per1-# Mio /jhb/f0 /jhb/f1 /jhb/f2 /jhb/f3
          Mio: Timing 4 stream(s) of 1024 x 1M direct reads queued 2 deep
              stream[0]:           f0: read   1073.74 MBytes @  1329.16 MBytes/Second
              stream[1]:           f1: read   1073.74 MBytes @  1334.83 MBytes/Second
              stream[2]:           f2: read   1073.74 MBytes @  1316.28 MBytes/Second
              stream[3]:           f3: read   1073.74 MBytes @  1329.92 MBytes/Second
          Mio: Aggregate:  4294.97 Mbytes @ 5265.12 MBytes/Second

       Issue the default number of reads to two block devices:

          per1-# Mio /dev/sdd /dev/sdf
          Mio: Timing 2 stream(s) of 1024 x 1M direct reads queued 2 deep
              stream[0]:          sdd: read   1073.74 MBytes @   408.38 MBytes/Second
              stream[1]:          sdf: read   1073.74 MBytes @   407.78 MBytes/Second
          Mio: Aggregate:  2147.48 Mbytes @ 815.57 MBytes/Second

       Create and do 10000 writes to four files via four streams:

          per1-# Mio -cw -n10000 /jhb/f0 /jhb/f1 /jhb/f2 /jhb/f3
          Mio: Timing 4 stream(s) of 10000 x 1M direct writes queued 2 deep
              stream[0]:           f0: write 10485.76 MBytes @   488.97 MBytes/Second
              stream[1]:           f1: write 10485.76 MBytes @   448.84 MBytes/Second
              stream[2]:           f2: write 10485.76 MBytes @   458.36 MBytes/Second
              stream[3]:           f3: write 10485.76 MBytes @   497.57 MBytes/Second
          Mio: Aggregate:  41943.04 Mbytes @ 1795.35 MBytes/Second

       Issue 10000 reads, queued 8 deep to four streams:

          per1-# Mio -q8 -n10000 /jhb/f0 /jhb/f1 /jhb/f2 /jhb/f3
          Mio: Timing 4 stream(s) of 10000 x 1M direct reads queued 8 deep
              stream[0]:           f0: read  10485.76 MBytes @   898.16 MBytes/Second
              stream[1]:           f1: read  10485.76 MBytes @  1075.04 MBytes/Second
              stream[2]:           f2: read  10485.76 MBytes @  1050.13 MBytes/Second
              stream[3]:           f3: read  10485.76 MBytes @   869.96 MBytes/Second
          Mio: Aggregate:  41943.04 Mbytes @ 3479.83 MBytes/Second

       Issue 240 x 12746752 reads to four streams and "tag" the summary:

          per1-# Mio -b12746752 -n240 -T full_aperture_2K /jhb/f0 /jhb/f1 /jhb/f2 /jhb/f3
          Mio: full_aperture_2K
          Mio: Timing 4 stream(s) of 240 x 12448K direct reads queued 2 deep
              stream[0]:           f0: read   3059.22 MBytes @   884.50 MBytes/Second
              stream[1]:           f1: read   3059.22 MBytes @   726.70 MBytes/Second
              stream[2]:           f2: read   3059.22 MBytes @   808.67 MBytes/Second
              stream[3]:           f3: read   3059.22 MBytes @   656.74 MBytes/Second
          Mio: Aggregate:  12236.88 Mbytes @ 2626.95 MBytes/Second

       Issue 10000 reads to four streams and report the response times:

          per1-# Mio -R -n10000 /jhb/f0 /jhb/f1 /jhb/f2 /jhb/f3
          Mio: Timing 4 stream(s) of 10000 x 1M direct reads queued 2 deep
              stream[0]:           f0: read  10485.76 MBytes @   536.02 MBytes/Second
              stream[1]:           f1: read  10485.76 MBytes @   688.96 MBytes/Second
              stream[2]:           f2: read  10485.76 MBytes @   856.74 MBytes/Second
              stream[3]:           f3: read  10485.76 MBytes @   841.03 MBytes/Second
          Mio: Aggregate:  41943.04 Mbytes @ 2144.08 MBytes/Second

          I/O response time buckets:      0ms    5ms    10ms    20ms    50ms   100ms   500ms
              stream[0]:           f0:     7632    1459     768     137       4       0       0
              stream[1]:           f1:     8570     928     395     103       4       0       0
              stream[2]:           f2:     9240     491     197      68       4       0       0
              stream[3]:           f3:     9196     494     234      76       0       0       0


NOTES

       Writing to a device that contains data can result in data loss.  Do not
       write to drives that contain any useful information.

       Character devices - Some platforms have  character  device  representa-
       tions  of  disk  devices and/or disk partitions that support read/write
       and some do not.

       Direct I/O - Direct I/O is not supported on all platforms, although  it
       is  pretty  well  tested  on Linux and Windows.  Direct I/O support for
       specific files on other platforms is schizophrenic at best, and may not
       be  supported on a particular file system, block device, character spe-
       cial device, or without appropriate mount options.

       Windows - Mio on Windows can be used from either a  cygwin  environment
       or  a  DOS shell environment.  File names are specified using the drive
       letter format.  Use of a leading slash is recommended to  avoid  inter-
       pretation  of  the  path  based  on  the last relative location in that
       drive.  A Windows physical drive is specified using the \\.\  notation.
       For example, PhysicalDrive9 is specified as \\.\PhysicalDrive9.

       The  Windows cygwin environment requires escaping the backslash result-
       ing in 4 backslashes, period, 2 backslashes.   Failure  to  escape  the
       backslash cygwin can cause writing to the root directory as the name is
       changed to \.PhysicalDrive9.



FILES

       /System/Library/Filesystems/acfs.fs/Contents/bin/Mio


SEE ALSO

       cvfs(8)



StorNext File System             January 2016                           Mio(1)

Mac OS X 10.12.3 - Generated Sat Feb 4 18:03:25 CST 2017
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.