Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Feb 2005 16:48:20 -0700
From:      Nick Pavlica <linicks@gmail.com>
To:        Jeff Roberson <jroberson@chesapeake.net>
Cc:        freebsd-performance@freebsd.org
Subject:   Re: My disk I/O testing methods for FreeBSD 5.3 ...
Message-ID:  <dc9ba0440502031548544723a1@mail.gmail.com>
In-Reply-To: <20050203175519.K18864@mail.chesapeake.net>
References:  <dc9ba044050203143647cee0c2@mail.gmail.com> <20050203175519.K18864@mail.chesapeake.net>

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

[-- Attachment #1 --]
Jeff,
  One of the tests where I saw a large difference was in DD.  I did a
quick test on a server that was brought up to RELENG_5 via cvsup on
2/2/05.

The Test:
-bash-2.05b$ time dd bs=1024 if=/dev/zero of=tstfile count=1M
1048576+0 records in
1048576+0 records out
1073741824 bytes transferred in 74.402757 secs (14431479 bytes/sec)

real    1m14.498s
user    0m0.550s
sys     0m8.838s


The vmstat -1 info is attached.


Thanks!
--Nick



On Thu, 3 Feb 2005 17:59:30 -0500 (EST), Jeff Roberson
<jroberson@chesapeake.net> wrote:
> 
> On Thu, 3 Feb 2005, Nick Pavlica wrote:
> 
> > All,
> >    I would like to share the methods that I have been using in my disk
> > I/O testing. The detailed results of these tests have been posted to
> > the performance and questions mailing lists under the title " FreeBSD
> > 5.3 I/O Performance / Linux 2.6.10 | Continued Discussion".  I
> > originally started this testing as due diligence in an up coming
> > project.  As a result of this testing I discovered an elegant
> > operating system that I enjoy working with.
> 
> Nick, first, I'd like to thank you for your efforts so far.  I think your
> tests have been very informative.  I'd like to see what we can do to get
> to the bottom of the differences.  Can you perform one test which varied
> greatly between 5.x and 4.x and collect some data for us?  To start with,
> the output of vmstat 1 piped to a file would be informative.  Do you have
> any indication that 5.x is actually cpu bound in a case where 4.x is not?
> I'm wondering if this is a latency issue or a cpu utilization issue.
> 
> I intend to backport some code that lets me graph system activity into
> RELENG_5.  Are you setup to cvsup to this tag?  Would it be convenient for
> you to do so?
> 
> Thanks,
> Jeff
> 
> >
> > Intent Of This Testing:
> > 1)To measure the disk I/O performance of various operating systems for
> > use as a production database server.
> > 2)Help improve the disk I/O performance of FreeBSD 5.x and greater by
> > assisting the FreeBSD development team in identifying possible
> > performance issues, and provide them with data to measure the success
> > of various changes to the operating system.
> >
> > Operating Systems tested:
> > Fedora Core 3 with EXT3, and XFS.  I tested with and with out patches.
> > SUSE Enterprise Server 9 with Riser FS.
> > FreeBSD 4.11R
> > FreeBSD 5.3R, RELENG_5_3, RELENG_5
> > NetBSD 2.0R
> > OpenBSD 3.6R
> >
> > Test Hardware:
> > Compaq DeskPro,  PIII 800, 384Mb Ram, 10Gb IDE HD.
> > Dell PE 2400, Dual PIII 550, 512Mb Ram, (2)10K,LVD SCSI, RAID 1, PERC
> > 2SI controller with 64Mb ram.
> > Dell PE SC400, 2.4Ghz P4, 256MB Ram, 40Gb IDE HD.
> > Dell 4600, 2.8 Ghz P4 with HT, 512MB Ram, 80GB IDE HD.
> >
> > Installation Notes:
> >   It's my intention to test these Operating Systems using as many of
> > the default installation options as possible with no special tuning.
> > The only deviations in my previous testing were as follows: The #linux
> > xfs option was used when installing Fedora so that I could use XFS,
> > and a special test where I installed  5.3R with UFS instead of UFS2 (I
> > didn't see any improvement when using UFS).  I installed FreeBSD using
> > the standard install option, and used the auto allocate features for
> > partitioning and slicing.  I installed Fedora with the stock server
> > packages and created a 100Mb /boot, 512Mb swap, and allocated the
> > remaining space to /.  I tested FreeBSD5.3R and FC3R with and without
> > updates.  I used cvsup to update FreeBSD and yum update to update
> > Fedora.  I didn't do any updating to FreeBSD4.11R, NetBSD2.0, and
> > OpenBSD3.6.
> >
> > I used the following utilities/tools in my testing:
> > DD
> > CP
> > IOSTAT (iostat -d 2)
> > Bonnie++
> > TOP
> > SQL,PL, PSQL
> > Postgresql 8.0
> >
> > DD Example Tests:
> > - #time dd bs=1024 if=/dev/zero of=tstfile count=1M
> > - #time dd bs=1024 if=/dev/zero of=tstfile count=2M
> > - #time dd bs=1024 if=/dev/zero of=tstfile count=3M
> >
> > Bonnie++ Example Tests:
> > #bonnie++ -u root -s 1024 -r 512 -n 5
> > #bonnie++ -u root -s 2048 -r 512 -n 5
> > #bonnie++ -u root -s 3072 -r 512 -n 5
> >
> > CP  Example Tests:
> > #time cp tstfile tstfile2
> >
> > SQL, PL, PSQL Example Tests:
> >
> > CREATE TABLE test1 (
> >     thedate TIMESTAMP,
> >     astring VARCHAR(200),
> >     anumber INTEGER
> > );
> >
> > CREATE FUNCTION build_data() RETURNS integer AS '
> >     DECLARE
> >         i INTEGER DEFAULT 0;
> >         curtime TIMESTAMP;
> >     BEGIN
> >         FOR i IN 1..1000000 LOOP
> >             curtime := ''now'';
> >             INSERT INTO test1 VALUES (curtime, ''test string'', i);
> >         END LOOP;
> >         RETURN 1;
> >     END;
> > ' LANGUAGE 'plpgsql';
> >
> > SELECT build_data();
> > Then the following script is run under the time program to ascertain
> > how long it takes to run:
> > CREATE TABLE test2  (
> >     thedate TIMESTAMP,
> >     astring VARCHAR(200),
> >     anumber INTEGER
> > );
> > CREATE TABLE test3 AS SELECT * FROM test1;
> > INSERT INTO test2 SELECT * FROM test1 WHERE ((anumber % 2) = 0);
> > DELETE FROM test3 WHERE ((anumber % 2) = 0);
> > DELETE FROM test3 WHERE ((anumber % 13) = 0);
> > CREATE TABLE test4 AS
> >  SELECT test1.thedate AS t1date,
> >         test2.thedate AS t2date,
> >         test1.astring AS t1string,
> >         test2.astring AS t2string,
> >         test1.anumber AS t1number,
> >         test2.anumber AS t2number
> >  FROM test1 JOIN test2 ON test1.anumber=test2.anumber;
> > UPDATE test3 SET thedate='now' WHERE ((anumber % 5) = 0);
> > DROP TABLE test4;
> > CREATE TABLE test4 AS SELECT * FROM test1;
> > DELETE FROM test4 WHERE ((anumber % 27) = 0);
> > VACUUM ANALYZE;
> > VACUUM FULL;
> > DROP TABLE test4;
> > DROP TABLE test3;
> > DROP TABLE test2;
> > VACUUM FULL;
> >
> > Example FS TAB:
> >
> > minime# cat /etc/fstab
> > # Device                Mountpoint      FStype  Options         Dump    Pass#
> > /dev/ad0s1b             none            swap    sw              0       0
> > /dev/ad0s1a             /               ufs     rw              1       1
> > /dev/ad0s1e             /tmp            ufs     rw              2       2
> > /dev/ad0s1f             /usr            ufs     rw              2       2
> > /dev/ad0s1d             /var            ufs     rw              2       2
> > /dev/acd0               /cdrom          cd9660  ro,noauto       0       0
> >
> > Verification Of Test:
> >    I have been able to get consistent results in all of my testing.
> > However, I think the best verification would be to have as many people
> > as possible test the disk I/O performance on a range of hardware,
> > testing methods, and configurations.
> >
> > Summary Of Results:
> >   The results of my testing have consistently demonstrated that
> > FreeBSD5.3+ has dramatically slower disk I/O performance than all of
> > the other operating systems that were tested.  FreeBSD 4.11R was the
> > performance leader followed by Fedora C3 with XFS.  All of the BSD
> > distributions, with the exception of 5.3+, were able to consistently
> > demonstrate a throughput of 56-58Mb/s sustained throughput, while 5.3+
> > consistently demonstrated a throughput of 12-15Mb/s (58 -15 = 43 ?).
> >
> > Please let me know if you need any additional details.
> >
> > Thanks!
> > --Nick Pavlica
> > _______________________________________________
> > freebsd-performance@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-performance
> > To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
> >
>

[-- Attachment #2 --]
 procs      memory      page                   disk   faults      cpu
 r b w     avm    fre  flt  re  pi  po  fr  sr ad0   in   sy  cs us sy id
 0 0 0   66480  85440   13   0   0   0  12   8   0  332  105 258  0  0 100
 0 0 0   66480  85436    3   0   0   0   3   0   0  336  119 257  0  1 99
 0 0 0   66480  85436    0   0   0   0   0   0   0  333  119 255  0  0 100
 0 1 0   67576  81548   81   0   0   0  47   0  20  376 7649 438  1  2 97
 0 1 0   67576  65524    0   0   0   0   0   0 125  586 32130 1228  0 14 86
 0 1 0   67576  49464    0   0   0   0   2   0 124  580 31980 1216  2 12 86
 0 1 0   67576  33404    0   0   0   0   0   0 124  583 32119 1231  2 13 84
 1 0 0   67576  17892    0   0   0   0   0   0 123  579 30892 1214  1 14 85
 0 1 0   67576   9276    0   0   0   0  27 2006 124  586 32317 1243  2 14 85
 0 1 0   67576   8888    0   0   0   0 3558 3762 124  583 30835 1226  0 16 84
 0 1 0   67576  14720    0   0   0   0 4186 5644 123  580 33397 1239  2 16 82
 0 1 0   67576  13704    0   0   0   0 4017 3763 124  584 32106 1235  0 16 84
 0 1 0   67576  13168    0   0   0   0 3901 3767 122  579 31103 1218  1 16 84
 0 1 0   67576  12156    0   0   0   0 4018 3765 124  582 32108 1234  0 16 84
 0 1 0   67576  11612    0   0   0   0 3901 3964 122  578 31102 1214  2 16 83
 0 1 0   67576  10600    0   0   0   0 4017 3794 124  583 32118 1238  1 15 84
 1 0 0   67576   9928    0   0   0   0 3933 3765 121  575 31321 1204  2 14 84
 0 1 0   67576   9284    0   0   0   0 3924 3763 124  580 31377 1226  0 19 81
 procs      memory      page                   disk   faults      cpu
 r b w     avm    fre  flt  re  pi  po  fr  sr ad0   in   sy  cs us sy id
 0 4 0   67960  15952   54   0   0   2 3997 5652 121  577 31396 1223  2 13 85
 0 4 0   67960  14944    0   0   0   0 4017 3769 124  580 32113 1228  2 15 84
 0 3 0   67960  15008    3   0   0   0 3752 3768 124  577 29820 1207  1 14 85
 0 2 0   67964  15872    5   0   0   0 3837 3504 108  863 28274 1517  0 10 90
 0 2 0   67964  11680    5   0   0   0 2932 1884  94  521 23428 988  0 12 88
 0 2 0   67964  11344    0   0   0   0 3850 3766 118  569 30833 1186  0 15 85
 0 2 0   67964  11344    0   0   0   0 3763 3763 119  572 30075 1187  1 15 84
 1 2 0   67968  16336    5   0   0  17 3592 15839 129  579 28244 1220  0 18 82
 0 2 0   67968  15568   32   0   0   0 3935 6650 122  573 31666 1206  1 15 84
 0 3 0   68268  15896   95   1   0   0 3708 3766 116  564 29114 1163  0 15 85
 0 3 0   68268  14896    0   0   0   0 4015 3765 123  582 32126 1231  1 16 83
 0 4 0   68356  15096    2   0   2   0 3714 3774 119  568 29550 1178  2 16 83
 0 4 0   68356  14856    0   0   0   0 3827 3767 121  578 30583 1208  2 12 86
 0 12 0   68360  10256    1   0   0   0 3621 3768 121  567 28797 1155  1 15 85
 0 12 0   68360  11180    0   0   1   0 10484 9416 115 1587 83583 3284  1 13 86
 0 12 0   68360  10804    0   0   0   0 3857 3764 117  570 30839 1182  2 15 83
 0 12 0   68392  11656    1   0   1   0 3549 3849 113  557 28268 1133  1 13 86
 0 4 0   69280  12204    2   0   0   0 3220 3769 109  543 25731 1068  0 12 88
 procs      memory      page                   disk   faults      cpu
 r b w     avm    fre  flt  re  pi  po  fr  sr ad0   in   sy  cs us sy id
 0 4 0   69280  13112    0   0   1   0 5860 5644  99  968 46714 1875  0 14 86
 0 4 0   69280  13356    0   0   0   4 3698 3765 117  569 29559 1176  0 16 84
 0 4 0   69288  13532   20   0   1   0 3725 3766 120  569 29557 1175  0 14 86
 0 4 0   69288  12512    0   0   0   0 4017 3765 120  577 32119 1218  2 14 85
 0 4 0   69264  13208   27   0   2   0 3605 3763 116  562 28533 1151  1 13 86
 0 4 0   69264  12828   14   0   0   1 3866 3766 119  572 30860 1200  0 16 84
 1 3 0   69276  13416   20   0   1   0 3624 3767 115  560 28749 1144  0 17 83
 0 4 0   69276  13028    0   0   0   0 3862 3765 118  573 30881 1195  1 18 82
 0 4 0   69276   7944    3   0   1   4 3872 2605 122  573 30843 1197  1 17 82
 0 3 0   69488  16100   60  10   3  49 3630 10975 169  615 28560 1422  1 14 85
 0 3 0   69488  15568   50   0   0   0 3911 3765 119  569 30578 1186  1 18 82
 1 3 0   70360  13616   27   0   1   0 2432 1483  93  506 19399 908  1 10 89
 0 3 0   70376  10712   14   0   0   0 8264 7538  81 1568 65908 2808  0  9 91
 1 2 0   70376  12320   10   0   0   0 9016 9416  87 1625 71748 2989  0 10 89
 0 3 0   70376  13608    0   0   0   0 3443 3766 108  550 27571 1103  0 14 86
 0 1 1   67576  14872    3   0   1   0 3581 3764 110  555 28542 1128  1 14 85
 1 0 1   67576  15060    0   0   0   0 3716 3763 118  573 29717 1183  0 13 87
 0 1 1   67576  15232    0   0   1   0 3720 3770 115  561 29644 1155  0 14 86
 procs      memory      page                   disk   faults      cpu
 r b w     avm    fre  flt  re  pi  po  fr  sr ad0   in   sy  cs us sy id
 0 1 1   67576  14856    0   0   0   0 3857 3763 117  572 30839 1189  2 13 85
 0 1 0   67576  14936   13   0   1   0 3749 3767 118  566 29807 1175  0 14 86
 0 1 1   67576  14564    0   0   1   0 3859 3766 122  579 30858 1221  0 16 84
 0 1 1   67576  14020    0   0   1   0 3900 3768 122  573 31082 1203  1 16 83
 1 0 1   67576  14120    0   0   0   0 3739 3764 118  571 29895 1178  3 12 85
 0 1 1   67576  13800    0   0   0   0 3845 3765 117  567 30746 1179  0 15 85
 0 1 0   67576  14020   12   0   1   0 3717 3767 118  569 29563 1178  2 12 85
 1 0 0   67576  14056    0   0   0   0 3755 3764 117  567 30022 1171  1 16 83
 0 1 0   67576  13752    0   0   0   0 3841 3765 117  570 30634 1188  1 18 81
 0 1 0   67576  14024    0   0   0   0 3695 3763 117  569 29546 1170  1 14 85
 0 1 0   67576  14744    0   0   0   4 3579 3765 112  554 28535 1123  2 16 82
 0 1 0   67576   9416    0   0   0   0 3213 1881 100  534 25706 1037  0 12 88
 0 1 0   67576  11612    0   0   0   0 3214 3763 101  537 25738 1052  2 11 88
 0 1 1   67576  13612   14   0   4   0 3272 3766 101  532 25966 1049  1 12 87
 0 1 1   67576   9164    0   0   0   0 3085 1881 100  536 24289 1031  1 11 88
 0 0 0   66480   8952  140   0   8   0 1998 1882  84  481 15812 819  1  7 92
 0 0 0   66480   8952    7   0   0   0   2   0   0  333  126 256  0  1 99
 0 0 0   66480   8952    2   0   0   0   0   0   0  331  122 251  0  1 99
 procs      memory      page                   disk   faults      cpu
 r b w     avm    fre  flt  re  pi  po  fr  sr ad0   in   sy  cs us sy id
 0 0 0   66480  16528    0   0   0   0  77 1896  15  349  119 301  0  2 98

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