More into /etc/rc.d/jail

Glenn Dawson glenn at antimatter.net
Wed Aug 10 18:18:49 GMT 2005


At 03:31 AM 8/10/2005, Jeremie Le Hen wrote:
>Hi Glenn,
>
> > >This was recently discussed in some thread.  The problem with this
> > >approach is that file backed md(4) devices are too slow to make it
> > >standard.  This is why this won't go into FreeBSD, IMHO.
> >
> > I experienced the same performance problem when comparing md(4) virtual
> > disks in 5.x to vn(4) virtual disks in 4.x.
> >
> > The results were that md(4) file backed disks in 5.x was only about 1/3 
> the
> > speed of vn(4) file backed disks in 4.x.
> >
> > Ultimately it turned out that newfs in 5.x creates ufs1 file systems which
> > are quite different than the same file system created with newfs in
> > 4.x.  The most notable difference was that in 5.x each cylinder group
> > essentially only had one cylinder in it.
> >
> > When a file system was created in 4.x and then mounted in 5.x using md(4),
> > the performance was almost identical to the performance of vn(4) in 4.x.
> >
> > I posted a message about it on the freebsd-fs list, but never received any
> > feedback.
>
>I just tested what you are saying.  I first created a file backed vn(4)
>device on my RELENG_4, disklabel(8)'ed and newfs(8)'ed it :
>%%%
>     yoda:root# dd if=/dev/zero of=newfs4x bs=1m count=50
>     yoda:root# vnconfig -c vn0 newfs4x
>     yoda:root# disklabel -r -w vn0 auto
>     yoda:root# newfs /dev/vn0c
>     yoda:root# vnconfig -u vn0
>%%%
>
>I copied it to my CURRENT box, and then I created a file backed md(4)
>device, bsdlabel(8)'ed and newfs(8)'ed it (note that labeling is not
>required since 5.x, but I have done it for the sake of consistency) :
>%%%
>     jarjarbinks:space# dd if=/dev/zero of=newfs7x bs=1m count=50
>     jarjarbinks:space# mdconfig -at vnode -f newfs7x
>     jarjarbinks:space# bsdlabel -r -w md1 auto
>     jarjarbinks:space# newfs -O 1 /dev/md1c
>     jarjarbinks:space# mdconfig -du 1
>%%%

That is basically what I did.  The only real difference is the block size 
that you used. (I was using 512 byte blocks)

It's interesting that you got nearly identical numbers.  The test that I 
ran was showing about 20Mbytes/sec under 4.x and about 7MB/sec under 
5.x.  The only way I could get 5.x to come close to the 4.x numbers was to 
use newfs in 4.x and then mount that file system in 5.x.  (I had a boot 
disk with two slices, 4.x and 5.x, and two other disks in the same machine 
that I used for testing.)

I'll run the tests again, and post the results.  Either I was doing 
something horribly wrong, or there's more to it than just using the 4.x 
newfs.  I ran the test over and over with the exact same result.

-Glenn



>And now the benchmark :
>%%%
>     jarjarbinks:space# mdconfig -at vnode -f newfs4x -u 4
>     jarjarbinks:space# mdconfig -at vnode -f newfs7x -u 7
>     jarjarbinks:space# mount /dev/md4 /mnt/newfs4x/
>     jarjarbinks:space# mount /dev/md7 /mnt/newfs7x/
>
>     # File backed filesystem created on RELENG_4 :
>     jarjarbinks:space# cd /mnt/newfs4x/
>     jarjarbinks:newfs4x# for i in `jot 10 ` ; do dd if=/dev/zero of=foo 
> bs=1m count=45 2>&1 | sed -n '$p' ; done
>     47185920 bytes transferred in 3.149436 secs (14982340 bytes/sec)
>     47185920 bytes transferred in 3.226415 secs (14624877 bytes/sec)
>     47185920 bytes transferred in 3.095972 secs (15241069 bytes/sec)
>     47185920 bytes transferred in 3.192095 secs (14782116 bytes/sec)
>     47185920 bytes transferred in 3.122508 secs (15111545 bytes/sec)
>     47185920 bytes transferred in 3.020874 secs (15619956 bytes/sec)
>     47185920 bytes transferred in 3.197009 secs (14759396 bytes/sec)
>     47185920 bytes transferred in 3.382755 secs (13948962 bytes/sec)
>     47185920 bytes transferred in 3.373716 secs (13986334 bytes/sec)
>     47185920 bytes transferred in 3.320148 secs (14211993 bytes/sec)
>
>     # File backed filesystem created on CURRENT :
>     jarjarbinks:newfs4x# cd /mnt/newfs7x/
>     jarjarbinks:newfs7x# for i in `jot 10 ` ; do dd if=/dev/zero of=foo 
> bs=1m count=45 2>&1 | sed -n '$p' ; done
>     47185920 bytes transferred in 3.329189 secs (14173399 bytes/sec)
>     47185920 bytes transferred in 3.469024 secs (13602074 bytes/sec)
>     47185920 bytes transferred in 3.662984 secs (12881825 bytes/sec)
>     47185920 bytes transferred in 3.558615 secs (13259630 bytes/sec)
>     47185920 bytes transferred in 3.241910 secs (14554975 bytes/sec)
>     47185920 bytes transferred in 3.339987 secs (14127577 bytes/sec)
>     47185920 bytes transferred in 3.498271 secs (13488355 bytes/sec)
>     47185920 bytes transferred in 3.194855 secs (14769346 bytes/sec)
>     47185920 bytes transferred in 3.746663 secs (12594120 bytes/sec)
>     47185920 bytes transferred in 3.358272 secs (14050654 bytes/sec)
>%%%
>
>As you can see, there is a small performance difference between
>the the one created by RELENG_4's newfs(8) and CURRENT's one.
>
>I've ran this test 100 times on each and made some statistics on the
>results :
>%%%
>     x newfs4x.result
>     + newfs7x.result
>     [...]
>     N           Min           Max        Median           Avg        Stddev
>     x 
> 100      12935312      16175549      14715640      14645011     685871.34
>     + 
> 100      11957991      16434651      14063540      14166142     907669.84
>     Difference at 95.0% confidence
>         -478869 +/- 222983
>         -3.26985% +/- 1.52258%
>         (Student's t, pooled s = 804451)
>%%%
>
>I've also compared RELENG_4's UFS1 and CURRENT's UFS2 :
>%%%
>     x newfs4x.result
>     + newfs7x.result.ufs2
>     [...]
>         N           Min           Max        Median           Avg 
> Stddev
>     x 
> 100      12935312      16175549      14715640      14645011     685871.34
>     + 
> 100      11368526      16089835      13619242      13727881      851634.8
>     Difference at 95.0% confidence
>         -917130 +/- 214322
>         -6.2624% +/- 1.46345%
>         (Student's t, pooled s = 773208)
>%%%
>
>Regards,
>--
>Jeremie Le Hen
>< jeremie at le-hen dot org >< ttz at chchile dot org >
>_______________________________________________
>freebsd-current at freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-current
>To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"



More information about the freebsd-current mailing list