Man Linux: Main Page and Category List


       zcav - program to test raw hard drive throughput.


       zcav      [-b      block-size[:chunk-size]]      [-c     count]     [-r
       [first-block]:last-block]      [-w]      [-s       skip-rate]       [-u
       uid-to-use:gid-to-use] [-g gid-to-use] [-l log-file] [-f] file-name [-l
       log-file [-f] file-name]...


       This manual page documents briefly the zcav, program.

       Modern hard drives have a constant rotational speed  but  have  varying
       numbers  of  sectors per track (outside tracks are longer and have more
       sectors). This is referred to as Zoned Constant  Angular  Velocity  (or
       ZCAV).  The  outer  tracks will have a higher data transfer rate due to
       having more sectors per track, these tracks generally  have  the  lower
       track/sector numbers.

       This program tests the ZCAV performance of a hard drive, by reading the
       entire data on it a specified number of times. The file name  given  as
       the first parameter, it can be specified as -, for standard input. This
       file will be opened as read-only and in  usual  operation  it  will  be
       /dev/hdX  or /dev/ide/host0/busX/targetY/lun0/disc depending on whether
       you use devfs or not (NB operating systems other than Linux  will  have
       different device names).

       The  output  should  be able to be easily graphed with gnuplot which is
       what I use to view the results.


       -b     the size (in Meg) of the blocks to  read/write  (default  100M),
              optionally  followed  by a ’:’ and the chunk size for read/write
              operations (default 1M).  Note that the chunk size must be  less
              than  or  equal to the block size and must also be significantly
              less than the size of the RAM in the machine.   Also  note  that
              for  the  write test there will be a fsync() after writing every

       -c     the number of times to read/write the entire disk.

       -r     the range of data (in Meg) to read/write on each  pass  (default
              the  entire device).  Useful if you want to quickly test part of
              a large drive.  If a single number is given  then  that  is  the
              last  block  to read, if two numbers then it’s the start and end
              of a range.  Values are in megs, but they are  rounded  down  to
              the block size.

       -s     skip  rate.   The  option -s 10 will cause it to read every 10th
              block and skip the rest.

       -f     the file-name for the input data.  This  isn’t  needed  on  well
              configured  systems  that  have  a  recent  Glibc  where you can
              specify the file name without the -f flag.

       -u     user-id to use.  When running as root specify the UID to run the
              tests  as,  it is not recommended to use root, so if you want to
              run as root use -u root.  Also if you want to specify the  group
              to run as then use the user:group format.  If you specify a user
              by name but no group then the primary group of that user will be
              chosen.   If  you specify a user by number and no group then the
              group will be nogroup.

       -g     group-id to use.  Same as using :group  for  the  -u  parameter,
              just  a different way to specify it for compatibility with other

       -w     write zero blocks to the disk instead of reading from the disk -
              will destroy data!


       This  program, it’s manual page, and the Debian package were written by
       Russell Coker <>.


       The source is available from .

       See     for     further