Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Aug 1997 11:16:33 -0700 (PDT)
From:      Simon Shapiro <Shimon@i-Connect.Net>
To:        dg@root.com
Cc:        current@FreeBSD.ORG
Subject:   Re: IDE vs SCSI was: flags 80ff work...
Message-ID:  <XFMail.970827111633.Shimon@i-Connect.Net>
In-Reply-To: <199708270258.TAA19831@implode.root.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi David Greenman;  On 27-Aug-97 you wrote: 

>     FreeBSD can read and write up to 64KB, depending on various factors
>  including the contiguousness of the file, the sequentialness of the
>  accesses,
>  and other factors. Random reads/writes to a file will usually happen in
>  blocksize chunks which are either 4KB or (more commonly) 8KB.

I did some homework:

Ran some tests on two systems:

Both systems are P6-200 SMP, running as UP.
Sendero is running 3.0-Current as of tonight.
Copper is Running 2.2 as of tonight

This is NOT a performance test.  The timing numbers are just for
completeness. Min and Max are in microseconds.

Both systems were booted to multi-user, and a sample taken.

Sendero then was put into a typical load which included compiling
about 10 different kernels, email, etc.

Copper was left alone, except for running:
  ``dd if=/dev/sd16s1a of=/dev/null bs=1024k''
The partition read is a 6GB slice off a 6x4GB RAID-0 array

Interesting points to ponder (suggested reading :-):

David is absolutely correct in assessing the file system usage.
I was totally wrong on that one and went back to my notes:

While David is right in regards to the filesystem, I did get
something correctly.  Regardless of block size specified, access
to a block device is always in 4K blocks.  Access to the raw (char)
device will be in the specified units, rounded to 512 bytes, but 
no more than 64K at a time.

My foggy memory that O/Ss in general are better at READ caching
than at WRITE caching is probably correct. Compiling a kernel
should have about an even mix of READ/WRITE.  What ends up in the
disk is about 1:25.  Look at the 8K read and write on Sendero.
Several things come out of this:

*  Caching controllers do make sense.
*  Stripe size much in excess of 8K is wasteful (or should be).
*  RAID-5 is probably NOT what you want for compile intensive 
   filesystems.  I would say RAID-0 (as source can be re-CVSed
   and object re-compiled.  If reliability these is essential,
   use RAID-1.
*  Anyone cares to guess what the ``Other'' block size is?
   On UnixWare (at one point or another) it turned out to be
   3K.  The missing 3/4 page from a filesystem inode read.


1.  Sendero:

       ------  Just booted -------   --- After Load ---      Net
          Blk Count  Min     Max     Count  Min     Max
Read      512    41  258   46022        41  258   46022       0
           1K   222  267 1018265      1185  259 1018265     963
           2K    49  374 1018061       278  337 1018061     229
           4K    49 1312   39506      2940  355 1009199    2891
           8K   494  519 1017799      3412  517 1047893    2918
          16K    85 1431 1008056       346  843 1019672     261
          32K    58 2399 1010198       286 2034 1012978     228
          64K     0    0       0       114 3269   99489     114
       Larger     0    0       0         0    0       0       0
        Other   182 1036 1020875      3838  388 1025511    3656

Write     512     0    0       0         0    0       0       0
           1K   219  267   47588      4626  228 1047802    4407
           2K   202  319   47256      1761  319 1066111    1559
           4K    16  436   25355      1232  417 1039338    1216
           8K  1498  624 1000692     77371  578 1142455   75873
          16K    33 1103    3864       473 1103 1067547     440
          32K     2 2403    2588       254 2372 1043489     252
          64K     6 4396    5499      1321 4394 1248494    1315
       Larger     0    0       0         0    0       0       0
        Other    84  380   38171     18566  380 1072166   18482



3.  Copper just after booting

        -----  Just booted ------   ------ After Dd ------  Net
         Size Count   Min     Max   Count   Min     Max
Read      512    53   264 1022266      63   264 1022266      10
           1K 11901   251 1013350   11918   251 1013350      17
           2K   110   357 1018538     116   357 1018538       6
           4K    34   503   22751 1572901   330 1038746 1572867 <-!!
           8K  1090   518 1024360    1105   518 1024360      15
          16K    56   831 1018888      60   831 1018888       4
          32K    46  3674   28092      50  3674   37735       4
          64K     1 13607   13607       1 13607   13607       0
       Larger     0     0       0       0     0       0       0
        Other  5765   437 1046068    5774   437 1046068       9

Write     512     0     0       0       0     0       0       0
           1K   102   276   44721     125   276   44721      23
           2K    61   341   44950      71   341   44950      10
           4K     5  3079   15590       5  3079   15590       0
           8K   443   695 1060177     721   695 1060177     278
          16K     2 32957   35854       2 32957   35854       0
          32K     2  2441    6630       2  2441    6630       0
          64K     2  4650   11308       2  4650   11308       0
       Larger     0     0       0       0     0       0       0
        Other    31   684 1060570      44   684 1060570      13

Simon




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970827111633.Shimon>