home *** CD-ROM | disk | FTP | other *** search
/ TopWare Tools / TOOLS.iso / tools / top1312 / raidmark.doc < prev    next >
Encoding:
Text File  |  1992-11-10  |  31.7 KB  |  677 lines

  1.  
  2.  
  3.  
  4.  
  5.                        Benchmarking Storage Systems
  6.  
  7.                                 White Paper
  8.                                     by
  9.                                Ohad I. Unna
  10.  
  11.                       DynaTek Automation Systems Inc.
  12.  
  13.  
  14.  
  15.  
  16.                               September, 1992
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                        Benchmarking Storage Systems
  23.  
  24.                                  Abstract
  25.  
  26.   Existing  disk  benchmarking  programs  fall  short  in  measuring  the
  27.   performance  of the  storage  subsystem as  a whole,  in  the sense  of
  28.   missing  the forest  for the  trees. In  order to  obtain a  meaningful
  29.   performance  index of a  storage subsystem that  is congruent with  the
  30.   user-perceived  usefulness of that system,  a benchmark has to  measure
  31.   the  performance in an  application-level manner, simulating  real-life
  32.   computing environments.  A method for constructing such a  benchmark is
  33.   presented in this paper.
  34.  
  35.  
  36.                                   Forward
  37.                                     or
  38.                Who needs another disk benchmarking program?
  39.  
  40.   It is  said that if you have a watch  you know what time it is,  but if
  41.   you  have two --  you are never  sure. If  you have half  a dozen  disk
  42.   benchmarking  utilities,  you  probably  have  six  different  sets  of
  43.   results,  and there's  a good  chance none  of these  results bear  any
  44.   resemblance to the way your system performs under its normal workload.
  45.  
  46.   Back in the old days (1982-3) things were  pretty simple - PC hard disk
  47.   drives were invariably spinning at 3600  revolutions per minute, almost
  48.   always had 17 sectors per  track, and built-in bad-sector remapping and
  49.   multi-megabyte cache  were practically unheard of in  the microcomputer
  50.   world. When the IDE and SCSI disk interfaces  were introduced to the PC
  51.   arena,  things  got  really complicated;  disk  drive  vendors  started
  52.   employing  sector-mapping schemes in order  to avoid the  1024-cylinder
  53.   restriction, controllers were enhanced with a  large onboard cache, and
  54.   on-the-fly disk compression adapters and software  become more and more
  55.   popular, rendering most of the old disk benchmarking software useless.
  56.  
  57.   If  you  are  not familiar  with  terms such  as  "sector-mapping"  and
  58.   "compression  adapters," don't worry. As  a user, you shouldn't  really
  59.   care  whether your  drive has  "skewed-track interleave"  or "low  BIOS
  60.   overhead latency," as long as you get good performance out of it.
  61.  
  62.  
  63.                        Application Level Benchmarks
  64.                                     or
  65.                         Why "your mileage may vary"
  66.  
  67.   Have you  ever been tempted to buy  one of those new "effective  access
  68.   time: 0.5  milliseconds" disk drives?  Look before you  leap: obtaining
  69.   such  a  figure  for  a   current  technology  drive  means  the  drive
  70.   manufacturer is  using a less-than-adequate disk benchmarking  program.
  71.   Such a program can easily be fooled by  the presence of a small onboard
  72.   cache;  by continuously reading  and writing data to  the same area  of
  73.   the disk, the benchmark merely updates  the RAM on the disk controller,
  74.   while  very little disk activity  actually takes place. Updating a  few
  75.  
  76.  
  77.                                                                    Page 2
  78.  
  79.  
  80.  
  81.  
  82.  
  83.   kilobytes of  RAM in one half  of a millisecond isn't that  impressive,
  84.   and  this will become  evident as soon as  you start running  real-life
  85.   applications.  If  you are  using  a software  disk  cache, as  is  now
  86.   standard  on  most  operating  systems,  you  will  hardly  notice  the
  87.   presence  of an  additional 256KB  controller-based  cache, unless  you
  88.   have a nonstandard configuration or device.
  89.  
  90.   Actual  storage   system  performance  depends  on  an   assortment  of
  91.   parameters:  bus bandwidth, cache  strategy, scatter-gather  algorithm,
  92.   cluster  size  and  fragmentation,  to   name  a  few.  None  of  these
  93.   parameters  are  influenced  by the  physical  characteristics  of  the
  94.   specific hard drive  used, and each of them has more impact  on overall
  95.   storage system performance than the proverbial "average seek time."
  96.  
  97.   The  more advanced  disk  benchmarking programs  try to  eliminate  the
  98.   effects of operating system level  parameters by communicating directly
  99.   to the  disk. Unfortunately, results obtained in this way are  about as
  100.   useful as knowing the top RPM of a car engine when running in neutral.
  101.  
  102.   Two cases  present even vaguer prospects: networks and  disk-arrays. In
  103.   both  cases the  same  hardware can  easily be  configured  to work  in
  104.   different modes, producing a vast range  of performance. With networks,
  105.   network  topology may  be redefined,  and server  configuration may  be
  106.   altered, resulting  in an overall system throughput that has  little to
  107.   do  with the actual  performance of the  drives themselves. The  second
  108.   special  case  is  disk-arrays  configured  as   a  RAID  cluster;  the
  109.   performance of the array as a unit can  be as high as twice or more the
  110.   performance  of  a  single  drive  or as  low  as  a  fraction  of  the
  111.   performance of a single drive.
  112.  
  113.   The  experienced  user will  try  to estimate  the importance  of  each
  114.   performance  feature of  the storage  system, weigh  them against  each
  115.   other, and make a decision based more on intuition than on hard facts.
  116.  
  117.   Eventually, the  user will run the ultimate benchmark: a test  drive of
  118.   the system  with their favorite application. As unscientific as  it may
  119.   seem,  the results of  this test are  more meaningful  than any of  the
  120.   standard benchmarks.
  121.  
  122.   The  application level benchmarking  approach is  defined as testing  a
  123.   system in a manner that resembles  actual usage as closely as possible.
  124.   This  seems  to be  the  most consistent  and  useful approach  to  the
  125.   problem of measuring storage system performance.
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.                                                                    Page 3
  139.  
  140.  
  141.  
  142.  
  143.  
  144.                     Shortcomings of Existing Benchmarks
  145.                                     or
  146.            Why results are only as good as the measurement tool
  147.  
  148.   *    Cache
  149.  
  150.        Since  most existing disk benchmarking  programs were designed  to
  151.        give  results within  a few  seconds of  activation, they  usually
  152.        perform  their tests by  moving very small  amounts of data.  With
  153.        modern  high-end storage devices  you could  have anywhere from  a
  154.        few  kilobytes to 64  megabytes or more of  cache between the  CPU
  155.        and  the storage system. If  a benchmarking program uses  standard
  156.        file  accesses, most or  all of the data  wouldn't even reach  the
  157.        drive  by  the  time  the measurement  period  is  over,  yielding
  158.        ludicrous  results, such as  a transfer rate  of 20 megabytes  per
  159.        second.  If  the cache  is  embedded within  the hardware,  as  is
  160.        typical  of high-end  SCSI  adapters, it  would present  the  same
  161.        problem for benchmarking software which uses  direct access to the
  162.        drive.  In  order to  measure  the true  effect  of a  cache,  the
  163.        benchmark  should move vast amounts  of data during the test,  use
  164.        huge  files for disk access,  and generally behave like a  typical
  165.        application.  A  good  benchmark  shouldn't  eliminate  the  cache
  166.        effect, but rather measure the true  benefit an actual application
  167.        will gain by the presence of that cache.
  168.  
  169.  
  170.   *    Compression
  171.  
  172.        Disk  compression hardware and  utilities are  new players in  the
  173.        small-computer  arena. Before data is  written to the drive it  is
  174.        compressed  either by a software  device driver or by a  dedicated
  175.        hardware adapter.  During reads, data is uncompressed back  to its
  176.        original  form. Best  performance  is achieved  when the  data  is
  177.        highly  regular,  such  as  is common  in  large  spreadsheets  or
  178.        databases.  However,  as the  ratio  between  CPU speed  and  disk
  179.        throughput  grows,  new  applications  will   have  built-in  data
  180.        compression,  especially those  dealing  with highly  compressible
  181.        data, such as video and music.  When this happens, the benefits of
  182.        disk-based compression will diminish. A  typical disk benchmarking
  183.        program  uses either fixed  data blocks  or whatever garbage  data
  184.        happens  to be in  memory at the  time. In  either case, the  data
  185.        tends to  be highly compressible, resulting in  exceptionally high
  186.        test  scores for transfer rate.  In order to obtain true  results,
  187.        the benchmark  should use data patterns which resemble  the actual
  188.        data as  closely as possible. Since this is  virtually impossible,
  189.        the next best thing is to select a  reference pattern which can be
  190.        easily  defined and whose  maximum compression  ratio is known  in
  191.        advance. The  only data pattern that meets both of  these criteria
  192.        is an  incompressible pattern. Information theory assures  us that
  193.        a  suitable pseudorandom  sequence has  zero  redundancy and  thus
  194.        cannot  be  compressed.  As  far  as   the  compression  logic  is
  195.        concerned,   a  pseudorandom   sequence  seems   identical  to   a
  196.        pre-compressed sequence.
  197.  
  198.  
  199.                                                                    Page 4
  200.  
  201.  
  202.  
  203.  
  204.  
  205.   *    Multi-threading
  206.  
  207.        A  drive  with  a  long  seek  time  may  perform  very  well  for
  208.        sequential  accesses,  but  it will  cease  doing so  as  soon  as
  209.        several  threads are  running concurrently,  even  if all  threads
  210.        access  the same file, and  all do so sequentially. The  necessity
  211.        to  switch tasks results  in multiple seeks up  to a point  where,
  212.        with a  sufficiently large number of threads, the behavior  of the
  213.        drive  will resemble totally  random access.  The extent to  which
  214.        this effect  will degrade performance cannot be  computed a-priori
  215.        using  only  the  knowledge  of average  random  access  time  and
  216.        transfer rate,  and thus has to be  tested per se. A small  number
  217.        (3-6)  of concurrent threads  is usually enough  to feel the  full
  218.        effect of sequential access degradation.
  219.  
  220.  
  221.   *    Sequential vs. Random
  222.  
  223.        Existing  benchmarks generally  divide the type  of disk  accesses
  224.        into  two   categories:  sequential  access  and  random   access.
  225.        However, in real life, only  very few of the applications actually
  226.        behave  this way. A modern  disk controller with a high  bandwidth
  227.        and  deferred-write  caching  can almost  totally  eliminate  seek
  228.        latency  for  applications  performing only  a  small  portion  of
  229.        random  accesses. The same drive,  when used with a  write-through
  230.        cache,  might perform almost as  slowly as fully random access.  A
  231.        good benchmark should present the system  with the correct mixture
  232.        of sequential and random accesses in order to get valid results.
  233.  
  234.  
  235.   *    Combining reads and writes
  236.  
  237.        Much  like  combining sequential  and  random accesses,  again,  a
  238.        mixture of read and write  requests may yield results which differ
  239.        substantially  form the  'expected' weighed  average  of the  two.
  240.        With  the  proper logic  programmed  in  the drive  controller  or
  241.        device   driver,  and   the   appropriate  scatter/gather   method
  242.        implemented in  the operating system, read and write  requests can
  243.        be overlapped from the CPU's  point of view, resulting in superior
  244.        throughput.  Some  of  the  more   rudimentary  disk  benchmarking
  245.        programs  do not perform  any writes at all  during the test,  and
  246.        simply  assume the transfer  rate is the same  as for reads.  This
  247.        assumption  falls apart  when RAID  class  devices are  concerned.
  248.        Depending  on RAID  level  and architecture,  the time  needed  to
  249.        write a block  may differ from the time it takes to read  the same
  250.        block  by a factor  of two  or more. An  inherently sluggish  RAID
  251.        device  may seem exceptionally  fast when  tested by only  reading
  252.        existing  data, or when the  mixture of read and write  operations
  253.        does not match the actual application mixture.
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.                                                                    Page 5
  261.  
  262.  
  263.  
  264.  
  265.  
  266.                     Defining a Reference Disk Benchmark
  267.                                     or
  268.                             What's a RAIDmark?
  269.  
  270.   The  DynaTek RAIDmark  utility is  intended to  measure the  integrity,
  271.   performance,  and  cost-efficiency  of  any  read/write  random  access
  272.   (blocked  I/O) storage subsystem in  terms that are meaningful for  the
  273.   layman, and that depict the apparent  usefulness the user gets from the
  274.   system. RAIDmark is also intended  to measure some low-level metrics of
  275.   the storage  device, which can be utilized for testing  and fine-tuning
  276.   such devices throughout the phases of on-site installation.
  277.  
  278.   The  RAIDmark  utility  defines  a  set of  six  standard  tests,  each
  279.   simulating a  typical I/O-bounded computer environment. For  each test,
  280.   the  tested system receives a  grade proportional to its throughput.  A
  281.   unit of 'One RAIDmark' is defined  as the measured throughput (for each
  282.   test) of an  IBM PS/2 model 95 with the standard IBM 150 MB  hard disk.
  283.   Integrity  is  tested  on  a  go/no-go   basis  using  32-bit  checksum
  284.   verification on each record.
  285.  
  286.   *    Low-level performance
  287.  
  288.        The  utility measures raw indexes  of storage device  performance:
  289.        average  access time,  read/write transfer  rate, effective  cache
  290.        size and cache strategy.
  291.  
  292.   *    High-level performance
  293.  
  294.        The utility tests the performance  of the storage subsystem on the
  295.        application level, checking the subsystem's  ability to respond to
  296.        harsh real-world data traffic of  typical heavy load environments.
  297.        The   utility  simulates  data  flow   of  several  typical   work
  298.        environments and  measures system response and throughput  in each
  299.        of  the test  cases, giving  a combined  figure of  merit for  the
  300.        system's performance in each scenario.
  301.  
  302.        The following scenarios are simulated and tested:
  303.  
  304.        -    Typical  workstation applications  -  multiuser (3-10  users)
  305.             environment, many  small- to medium-size file requests,  most
  306.             of  which are  read-only accesses  with  less frequent  large
  307.             file  read/write  operations  (as in  CAD/CAM  file  save  or
  308.             memory swap).
  309.  
  310.        -    Transaction processing  environment - 5-50 users, many  small
  311.             record   read  and  update   requests,  reports  and   backup
  312.             processes running  in the background, transaction logbook  as
  313.             a large sequential file.
  314.  
  315.        -    Video/audio/multimedia  applications - single  or few  users,
  316.             huge  sequential  access  files, with  both  read  and  write
  317.             requests.
  318.  
  319.  
  320.  
  321.                                                                    Page 6
  322.  
  323.  
  324.  
  325.  
  326.  
  327.        -    Database  query  systems -  5-200  users, many  small  record
  328.             accesses,  almost  all  of  which   are  read-only;  updates,
  329.             reports and backup are executed during system off-line time.
  330.  
  331.        -    Data  logging - up  to several hundreds  of sites, many  very
  332.             small  random   write  accesses  (typically  20-100   bytes),
  333.             reports and backup are executed during system off-line time.
  334.  
  335.        -    Archiving  -  few  users  with  large  sequential  read/write
  336.             accesses.
  337.  
  338.   *    Degraded subsystem performance
  339.  
  340.        When the subject of the tests  is a RAID-class storage system, the
  341.        user can  disable one of the subsystem elements, and  then proceed
  342.        to measure the degraded performance in this hindered setup.
  343.  
  344.   *    Design constraints and limitations
  345.  
  346.        -    Free disk space
  347.  
  348.             In  order for the  RAIDmark utility to  conduct the tests  it
  349.             should be able to create  files of several megabytes each, or
  350.             even   larger,  if  caching  effects   are  to  be   measured
  351.             accurately.  For best accuracy, at  least 150MB of free  disk
  352.             space should be available on the tested drive.
  353.  
  354.        -    Operating system interface
  355.  
  356.             When  using a  multi-processing  environment, all  benchmarks
  357.             should be run as a sole  process, otherwise time measurements
  358.             will be of little value.
  359.  
  360.        -    Integrity and stability
  361.  
  362.             The  ability of RAID-class devices  to operate with parts  of
  363.             the  subsystem  inoperable  (or   altogether  missing)  might
  364.             create a  situation in which the  user is not aware that  the
  365.             system  is  operating  under  highly  unfavorable  conditions
  366.             which adversely  affect the benchmark. Moreover, modern  disk
  367.             controllers can  overcome some physical mishaps, such  as bad
  368.             sectors, unaligned heads, etc., relying  on firmware logic to
  369.             correct   these   problems  at   the  expense   of   degraded
  370.             performance.  The  user  should  identify  and  isolate  such
  371.             conditions, possibly  by testing for stability over  time and
  372.             over different areas of the disk platters.
  373.  
  374.        -    DOS FAT Latency
  375.  
  376.             When  using top-level MS-DOS file  I/O requests, each  random
  377.             file  seek requires  the operating  system to  scan the  file
  378.             allocation  table (FAT)  from the  location  pointing to  the
  379.             beginning  of  the file,  to  the  location pointing  to  the
  380.  
  381.  
  382.                                                                    Page 7
  383.  
  384.  
  385.  
  386.  
  387.  
  388.             requested cluster.  Although the FAT is usually kept  in RAM,
  389.             for  large   files  this  sequential  scanning  process   may
  390.             actually take  longer than the physical movement of  the disk
  391.             arm.  Some advanced  applications  (database managers,  etc.)
  392.             overcome this  delay by keeping several logical  entry points
  393.             to  the file ("file handles")  scattered at different  points
  394.             in the  file. Access is then achieved using the  nearest file
  395.             handle, reducing  FAT latency by a factor of 10 to  20. Other
  396.             applications,  such  as  MS-Windows  3.0/3.1  Virtual  Memory
  397.             Manager, implement their own file system  to achieve zero FAT
  398.             latency.  More modern operating systems,  such as OS/2  HPFS,
  399.             achieve  the same favorable  results using advanced  built-in
  400.             random seek methods.
  401.  
  402.             For  the  sake of  being  as  general as  possible,  RAIDmark
  403.             measures  the  exact FAT  latency  on  the tested  system  by
  404.             comparing the average access times for  clusters located in a
  405.             limited  region near the  beginning of the  file to those  of
  406.             clusters  located in a  similar size region  near the end  of
  407.             the file.  The average FAT latency is then deducted  from all
  408.             random  access test times, giving  the theoretical limit  for
  409.             an 'optimally tuned' application.
  410.  
  411.   *    Test files
  412.  
  413.        Test  files are  homogeneous streams of  random values,  logically
  414.        accessed  as an array of  32-bit unsigned integers. The stream  is
  415.        logically   subdivided    into   records   of   16    double-words
  416.        (long-words), each containing an embedded checksum.
  417.  
  418.        Each  record in a  test file contains 16  double-words of 32  bits
  419.        each.   Fifteen  of   these  double-words  are   generated  by   a
  420.        pseudorandom  number generator.  The 16th value  is calculated  in
  421.        such  a way  that the  sum of  all words  in the  record plus  the
  422.        offset  of the record  from the beginning of  the file (in  bytes)
  423.        equals  zero (modulo 2^32). This  file structure enables the  user
  424.        to  create files  that  are incompressible  by nature,  but  still
  425.        allows  the  user to  verify  the validity  of  the data  with  an
  426.        error-detection  probability  of  near  certainty.  However,  this
  427.        method  requires one  multiplication and  two addition  operations
  428.        per  32-bit integer during  file creation,  but only one  addition
  429.        per double-word during read access.
  430.  
  431.        To  prevent  meaningless  results  obtained  from  slow  processor
  432.        machines  with concurrent disk access,  a 32KB block of data  (512
  433.        records  of 64  bytes) is  prepared in advance,  and records  from
  434.        this  block are written  to the disk at  file creation, with  only
  435.        one word  in each 16-word record changed for each  write operation
  436.        to account for different file offsets.  This will give even a slow
  437.        CPU ample time to complete  data preparation before the next write
  438.        operation is due.
  439.  
  440.  
  441.  
  442.  
  443.                                                                    Page 8
  444.  
  445.  
  446.  
  447.  
  448.  
  449.        Theoretically, data  created in the method described above  can be
  450.        compressed. However,  there is currently no compression  algorithm
  451.        capable of detecting the 256Kbit-long  patterns created using this
  452.        method.
  453.  
  454.        A question arises as to the  extent to which this random-data file
  455.        serves as a  good test case, since in reality most data  files are
  456.        compressible by  30%-60% or, in some homogeneous  data acquisition
  457.        applications, up to 80%; however,  using compressible data exposes
  458.        us  to the vast range  of compression algorithms, each having  its
  459.        own  peculiarities  regarding specific  data  patterns,  sometimes
  460.        resulting  in a  twofold factor  in throughput  for some  specific
  461.        instance. Hence, the approach taken in  RAIDmark is the worst-case
  462.        compression scenario, in which all algorithms  behave in a similar
  463.        fashion, namely, no compression occurs.
  464.  
  465.        In  a  future  version  the  user  may  be  given  the  option  of
  466.        generating semi-random  ("pink noise") data files, permitting  the
  467.        compression mechanism to affect results.
  468.  
  469.  
  470.        -    Test File Creation
  471.  
  472.             If  any of  the  disk tests  is requested,  a  128MB file  is
  473.             created.  This process  is timed as  accurately as  possible,
  474.             both  the initial  file open  operation, and  the writing  of
  475.             data on  the disk. Measurement is done separately  for chunks
  476.             of  data of  varying sizes.  The  first two  chunks are  16KB
  477.             long, the third is 32KB long, the fourth  -- 64KB, and so on,
  478.             with the  8th chunk being 1MB long. The remaining  1MB chunks
  479.             are written to bring the total to the final size.
  480.  
  481.             The  128MB file  size was  chosen  arbitrarily, being  larger
  482.             than  today's biggest disk  cache units,  but less than  half
  483.             the  size of modern  high capacity disks.  This is a  default
  484.             value,  intended  to  become  the  'RAIDmark  standard,'  but
  485.             values ranging  from 1MB to 1GB are implemented  and selected
  486.             using  a command line  option. Test  files smaller than  16MB
  487.             might  produce  inaccurate  results, and  the  user  will  be
  488.             warned in  case such a selection was made. Using  the default
  489.             file  size,  each  separate  test will  take  between  a  few
  490.             seconds  and  two minutes  to complete,  permitting  accurate
  491.             measurement  without seizing  the system  for an  intolerable
  492.             duration. There  are 14 separate tests in a  full test-suite,
  493.             so with all the testing overhead,  running the full benchmark
  494.             may take the better part of an hour.
  495.  
  496.  
  497.        -    Determine deferred-write cache size
  498.  
  499.             During  the  file  creation phase,  effective  transfer  rate
  500.             throughput  is   measured  for  increasing  data  chunks   as
  501.             described  above.  If the  system contains  a  deferred-write
  502.  
  503.  
  504.                                                                    Page 9
  505.  
  506.  
  507.  
  508.  
  509.  
  510.             cache, the  first few chunks will  take a very short time  to
  511.             be written,  usually exhibiting a throughput in excess  of 10
  512.             megabytes per second. At some  point, throughput will decline
  513.             sharply.  This point in  the data flow marks  the end of  the
  514.             posted write  cache. With systems employing dynamic  caching,
  515.             the value  obtained for the cache size may be  arbitrary, but
  516.             if  the test is  run on  an otherwise idle  system, the  size
  517.             detected  will be  close  to the  maximum possible  for  that
  518.             system.
  519.  
  520.             Note  that in  order for  this  test to  run accurately,  the
  521.             system should be given enough  time to "rest" before the test
  522.             commences  in order to  enable previously  cached data to  be
  523.             flushed  to disk  by the  cache logic. The  user should  wait
  524.             until all previous disk activity  ceases before starting this
  525.             test.
  526.  
  527.  
  528.        -    Determine raw transfer rate for write
  529.  
  530.             After  obtaining an  upper bound for  the posted-write  cache
  531.             size,   the  actual  non-cached   transfer  rate  for   write
  532.             operations is  measured by first writing data to  a different
  533.             location  on the  drive. The  amount of  data written  should
  534.             exceed  the size  of the computed  deferred-write cache.  The
  535.             benchmark then compares total write times  for data chunks of
  536.             different  sizes,  specifically  8KB  and   32KB  blocks.  By
  537.             subtracting the  two, all fixed-overhead delays are  canceled
  538.             out, and  the net result is the  time it takes to write  24KB
  539.             of data.
  540.  
  541.             This figure for transfer rate  will usually be lower than the
  542.             nominal  figure quoted by the  drive manufacturer, since  the
  543.             measurement  involves drive head  movements (seek and  search
  544.             operations),   operating  system  and   BIOS  overhead,   and
  545.             cache-miss delays.  However, the figure obtained this  way is
  546.             a  more meaningful  measure of  subsystem performance,  since
  547.             this  is   the  actual  throughput  as  experienced   by  the
  548.             application  and   the  end  user.  Delays  created   by  the
  549.             benchmarking  process utility itself  are taken into  account
  550.             and removed from the delay measurement.
  551.  
  552.             During  the "post-cache" phase  of writing,  each of the  1MB
  553.             chunks  of data should  take approximately  the same time  to
  554.             complete.  If the  variability is higher  than expected,  the
  555.             user  will  be  warned  of  the  system's  instability.  This
  556.             situation  may arise when  other processes  in the system  or
  557.             the  network are  active, when  the  cache strategy  involves
  558.             some  exotic algorithm, when the  disk is highly  fragmented,
  559.             when many bad sectors are  scattered on the disk's test area,
  560.             or when  a "flaky" drive causes retried attempts for  some of
  561.             the  operations. The  user has  the choice  of repeating  the
  562.  
  563.  
  564.  
  565.                                                                   Page 10
  566.  
  567.  
  568.  
  569.  
  570.  
  571.             test,   or   else   referring   to   the   user   guide   for
  572.             troubleshooting advice.
  573.  
  574.  
  575.        -    Determine raw transfer rate for read
  576.  
  577.             Transfer  rate  for sequential  read  access is  measured  by
  578.             comparing  total  read times  for  data chunks  of  different
  579.             sizes, specifically  8KB and 32KB blocks. By  subtracting the
  580.             two, all fixed-overhead delays are canceled  out, and the net
  581.             result is the time it takes to read 24KB of data.
  582.  
  583.  
  584.        -    Main test executive
  585.  
  586.             The main test executive procedure is  a generic routine whose
  587.             input parameters  define the real-life environment each  test
  588.             case is supposed to simulate. Parameters include:
  589.  
  590.             - record size
  591.  
  592.             - distribution of access type
  593.  
  594.             - number of users or processing threads
  595.  
  596.             The  procedure determines the number  of times the tests  are
  597.             to  be repeated as  a function  of the duration  of a  single
  598.             test.  The rule is  that, by default,  each test case  should
  599.             take from  a few seconds to around two minutes. If  the total
  600.             desired  testing time of the  complete benchmark is given  on
  601.             the  command  line,  the  duration of  each  single  test  is
  602.             adjusted  accordingly. This time  does not include  benchmark
  603.             overhead, such as file creation  and cache overflowing, hence
  604.             total benchmark duration may be  considerably longer than the
  605.             command line parameter.
  606.  
  607.  
  608.        -    Build random block
  609.  
  610.             This routine creates a 32KB  block in memory for writing onto
  611.             the  disk during the file  creation phase. The format of  the
  612.             block is  described above. The algorithm used  for generating
  613.             random numbers  is the Linear-Congruential method  (described
  614.             in  D.E. Knuth, "The  Art of  Computer Programming" Vol.  2).
  615.             The  location used for inserting  the checksum word for  each
  616.             record is the location (first  four bytes) of each record. In
  617.             order  to account for different  file offsets, this  location
  618.             is updated for each instance of writing the 32KB block.
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.                                                                   Page 11
  627.  
  628.  
  629.  
  630.  
  631.  
  632.                                 Conclusion
  633.  
  634.   In  order to help  the user select a  storage system and  configuration
  635.   that will  match their computing needs, a standard  reference benchmark
  636.   for  measuring storage  system performance has  been defined.  Existing
  637.   disk  benchmarking programs  fall short when  measuring modern  'smart'
  638.   storage systems, or when unusual  disk configurations are used. Many of
  639.   the most important performance factors  are not taken into account, and
  640.   the  characteristics of the user's  application don't play any role  in
  641.   the  measurement when these  utilities are  used. The DynaTek  RAIDmark
  642.   has  been  created  to  overcome these  limitations,  operating  as  an
  643.   application-level benchmark  program. RAIDmark measures storage  system
  644.   performance  in various  typical environment  conditions, and  provides
  645.   the  user with a  good indication of the  expected usefulness of  their
  646.   system.
  647.  
  648.  
  649.  
  650.   *    Technical reference
  651.  
  652.        -    Patterson, David A.; Gibson, Garth; Katz, Randy H.:
  653.             "A  Case for Redundant Arrays  of Inexpensive Disks  (RAID)";
  654.             ACM SIGMOD (Chicago, 1988).
  655.  
  656.        -    Patterson, David A.; Chen, Peter;  Gibson, Garth; Katz, Randy
  657.             H.:
  658.             "An  Introduction to  Redundant Arrays  of Inexpensive  Disks
  659.             (RAID)"; IEEE 1989.
  660.  
  661.        -    Integra Technologies, Inc. - Graham, Richard A.:
  662.             "Redundant Arrays of Inexpensive Disks" (1991)
  663.  
  664.        -    Finney, Kenneth C.; Graham, Richard A.:
  665.             "A Discussion of RAID Technology"; DynaTek/Integra, 1992.
  666.  
  667.  
  668.  
  669.  
  670.  
  671.   DynaTek and RAIDmark are trademarks of Dynatek Automation Systems Inc.
  672.  
  673.   HPFS,  IBM, Integra, MS-DOS, MS-Windows,  OS/2 and PS/2 are  registered
  674.   trademarks of their respective holders.
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.                                                                   Page 12
  688.