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>
