Raidframe performance and WD Raptors
David Brownlee <[email protected]> Tue, 2 Aug 2005 14:52:13 +0100 (BST)
| Newsgroups | gmane.os.netbsd.devel.performance |
|---|---|
| Message-ID | <[email protected]> |
Looking at putting together a new machine with a pair of fast SATA disks (WD raptors), and wanted to get a rough feel for the optimal filesystem blocksize, type, and raidframe stripe size, plus what the speed increase would be compared to an older IDE disk and another SATA disk. So, one small perl script which calls newfs on a filesystem, mounts, extracts Openoffice distfile, umounts, remounts removes, and then umounts later... Timings included for an older IDE disk (ST315320A), standard SATA disk (ST3200822AS), the two fast raptors (WD740GD), and of course two variations on raidframe RAID1 on top of the two raptors. In each case the filesystems were tested with 4k-64k blocksizes, ffs 1 & 2 (O1 and O2), and softdep, no mount flags, and async. My conclusion on this was to go with 16 blocksizes, ffsv2 (more for the faster fsck), softdep, and raidframe with 128 stripe sizes. The test system is the latest netbsd-2 on an Athlon64 4000+ in an Asus A8V-deluxe motherboard with 128M of RAM. On some of the 64k async tests I was able to trigger a lockup. I need to look at that more. In case anyone else finds this interesting. Do not place any value on the fact seconds are displayed to one decimal place. wd2 at atabus2 drive 0: <ST315320A> wd2: drive supports 16-sector PIO transfers, LBA addressing wd2: 14594 MB, 29651 cyl, 16 head, 63 sec, 512 bytes/sect x 29888820 sectors wd2: 32-bit data port wd2: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66) wd2(viaide1:0:0): using PIO mode 4, Ultra-DMA mode 4 (Ultra/66) (using DMA data transfers) 4k-O2-softdep newfs:4.8 tar:212.9 um:8.0 rm:182.1 um:0.1 8k-O2-softdep newfs:2.0 tar:192.4 um:9.1 rm:168.1 um:0.2 16k-O2-softdep newfs:0.8 tar:153.9 um:4.5 rm:177.3 um:0.2 32k-O2-softdep newfs:0.4 tar:153.5 um:2.3 rm:189.4 um:0.2 64k-O2-softdep newfs:0.3 tar:592.0 um:2.1 rm:226.4 um:0.2 4k-O1-softdep newfs:28.5 tar:215.6 um:6.0 rm:167.5 um:0.1 8k-O1-softdep newfs:12.6 tar:173.6 um:4.5 rm:158.3 um:0.3 16k-O1-softdep newfs:6.3 tar:146.8 um:5.6 rm:170.9 um:0.2 32k-O1-softdep newfs:3.2 tar:148.3 um:3.9 rm:183.6 um:0.2 64k-O1-softdep newfs:1.7 tar:199.2 um:1.7 rm:221.8 um:0.2 4k-O2- newfs:4.6 tar:291.0 um:4.7 rm:181.9 um:0.2 8k-O2- newfs:2.0 tar:257.1 um:3.5 rm:170.0 um:0.1 16k-O2- newfs:0.8 tar:257.1 um:2.5 rm:178.6 um:0.1 32k-O2- newfs:0.4 tar:291.0 um:2.1 rm:189.0 um:0.3 64k-O2- newfs:0.3 tar:431.5 um:1.8 rm:227.7 um:0.2 4k-O1- newfs:28.5 tar:283.2 um:4.9 rm:167.9 um:0.3 8k-O1- newfs:12.7 tar:281.4 um:3.5 rm:159.9 um:0.1 16k-O1- newfs:6.4 tar:274.1 um:2.5 rm:170.7 um:0.2 32k-O1- newfs:3.2 tar:301.0 um:1.0 rm:184.7 um:0.2 64k-O1- newfs:1.7 tar:431.1 um:1.4 rm:222.7 um:0.2 4k-O2-async newfs:4.6 tar:199.8 um:4.2 rm:182.4 um:0.3 8k-O2-async newfs:1.9 tar:162.4 um:3.4 rm:169.6 um:0.2 16k-O2-async newfs:0.7 tar:132.0 um:2.3 rm:176.0 um:0.3 32k-O2-async newfs:0.4 tar:116.3 um:2.3 rm:190.1 um:0.2 64k-O2-async newfs:0.3 tar:221.7 um:2.0 rm:226.8 um:0.1 4k-O1-async newfs:28.4 tar:180.5 um:5.1 rm:165.6 um:0.2 8k-O1-async newfs:12.6 tar:151.8 um:3.8 rm:158.8 um:0.1 16k-O1-async newfs:6.3 tar:136.6 um:2.5 rm:170.3 um:0.3 32k-O1-async newfs:3.2 tar:123.2 um:2.1 rm:184.5 um:0.2 64k-O1-async newfs:1.6 tar:265.3 um:2.4 rm:222.3 um:0.2 --------------------------------------------------------------------- wd1 at atabus1 drive 0: <ST3200822AS> wd1: drive supports 16-sector PIO transfers, LBA48 addressing wd1: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors wd1: 32-bit data port wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133) wd1(viaide0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA data transfers) 4k-O2-softdep newfs:3.6 tar:141.6 um:5.0 rm:101.9 um:0.3 8k-O2-softdep newfs:1.2 tar:132.8 um:2.6 rm:95.4 um:0.3 16k-O2-softdep newfs:0.5 tar:122.3 um:1.9 rm:99.5 um:0.2 32k-O2-softdep newfs:0.3 tar:118.1 um:1.3 rm:111.2 um:0.3 64k-O2-softdep newfs:0.4 tar:2624 um:1.3 rm:133.8 um:0.2 4k-O1-softdep newfs:14.7 tar:131.4 um:4.0 rm:97.1 um:0.2 8k-O1-softdep newfs:5.5 tar:116.9 um:5.6 rm:95.7 um:0.3 16k-O1-softdep newfs:2.7 tar:121.1 um:2.9 rm:97.9 um:0.3 32k-O1-softdep newfs:1.5 tar:132.8 um:2.0 rm:113.6 um:0.4 64k-O1-softdep newfs:0.8 tar:167.0 um:1.2 rm:132.5 um:0.2 4k-O2- newfs:3.6 tar:232.6 um:3.2 rm:101.3 um:0.5 8k-O2- newfs:1.5 tar:220.5 um:1.8 rm:96.5 um:0.3 16k-O2- newfs:0.5 tar:210.8 um:0.9 rm:98.4 um:0.5 32k-O2- newfs:0.4 tar:216.4 um:0.6 rm:111.2 um:0.4 64k-O2- newfs:0.2 tar:302.2 um:0.4 rm:131.6 um:0.3 4k-O1- newfs:14.9 tar:221.7 um:3.1 rm:98.7 um:0.2 8k-O1- newfs:5.4 tar:210.5 um:1.7 rm:94.4 um:0.3 16k-O1- newfs:2.9 tar:201.3 um:1.3 rm:92.8 um:0.3 32k-O1- newfs:1.4 tar:210.6 um:1.1 rm:109.3 um:0.3 64k-O1- newfs:0.8 tar:297.1 um:0.9 rm:135.0 um:0.3 4k-O2-async newfs:3.5 tar:121.2 um:4.1 rm:102.4 um:0.4 8k-O2-async newfs:1.2 tar:118.1 um:3.1 rm:97.6 um:0.1 16k-O2-async newfs:0.5 tar:90.9 um:1.9 rm:96.4 um:0.3 32k-O2-async newfs:0.2 tar:73.4 um:1.6 rm:109.4 um:0.4 64k-O2-async newfs:0.1 tar:185.6 um:1.5 rm:131.9 um:0.3 4k-O1-async newfs:14.5 tar:118.4 um:3.8 rm:99.6 um:0.3 8k-O1-async newfs:5.5 tar:105.1 um:2.5 rm:90.6 um:0.2 16k-O1-async newfs:2.7 tar:86.6 um:2.2 rm:95.8 um:0.3 32k-O1-async newfs:1.5 tar:100.1 um:1.7 rm:106.1 um:0.3 64k-O1-async newfs:0.8 tar:229.3 um:1.5 rm:127.3 um:0.3 --------------------------------------------------------------------- wd0 at atabus0 drive 0: <WDC WD740GD-50FLC0> wd0: drive supports 16-sector PIO transfers, LBA48 addressing wd0: 70911 MB, 144073 cyl, 16 head, 63 sec, 512 bytes/sect x 145226112 sectors wd0: 32-bit data port wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133) wd0(viaide0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA data transfers) 4k-O2-softdep newfs:2.6 tar:133.6 um:4.4 rm:75.7 um:0.8 8k-O2-softdep newfs:0.9 tar:75.6 um:3.7 rm:57.0 um:0.5 16k-O2-softdep newfs:0.4 tar:81.4 um:2.9 rm:56.9 um:0.5 32k-O2-softdep newfs:0.3 tar:59.1 um:2.6 rm:75.3 um:0.3 64k-O2-softdep newfs:0.2 tar:190.4 um:1.3 rm:140.6 um:0.1 4k-O1-softdep newfs:10.4 tar:128.0 um:3.4 rm:66.1 um:0.8 8k-O1-softdep newfs:4.5 tar:71.6 um:2.6 rm:51.9 um:0.5 16k-O1-softdep newfs:2.3 tar:57.9 um:2.3 rm:56.4 um:0.5 32k-O1-softdep newfs:1.2 tar:58.4 um:2.2 rm:79.9 um:0.5 64k-O1-softdep newfs:0.7 tar:82.8 um:5.3 rm:134.5 um:0.2 4k-O2- newfs:2.7 tar:146.2 um:0.6 rm:73.6 um:0.6 8k-O2- newfs:0.9 tar:88.7 um:1.4 rm:56.8 um:0.5 16k-O2- newfs:0.4 tar:91.4 um:1.0 rm:53.9 um:0.6 32k-O2- newfs:0.3 tar:146.3 um:0.6 rm:67.9 um:0.4 64k-O2- newfs:0.2 tar:186.0 um:0.7 rm:146.4 um:0.2 4k-O1- newfs:10.3 tar:136.3 um:1.3 rm:66.3 um:0.7 8k-O1- newfs:4.5 tar:87.1 um:1.3 rm:53.0 um:0.5 16k-O1- newfs:2.3 tar:98.5 um:0.9 rm:53.4 um:0.4 32k-O1- newfs:1.2 tar:174.2 um:0.6 rm:75.2 um:0.2 64k-O1- newfs:0.7 tar:188.8 um:0.6 rm:141.0 um:0.2 4k-O2-async newfs:2.7 tar:113.5 um:2.6 rm:74.7 um:0.6 8k-O2-async newfs:0.9 tar:62.0 um:1.4 rm:57.3 um:0.4 16k-O2-async newfs:0.4 tar:45.9 um:1.0 rm:53.8 um:0.6 32k-O2-async newfs:0.3 tar:36.7 um:0.9 rm:71.6 um:0.3 64k-O2-async newfs:0.2 tar:92.4 um:0.7 rm:136.5 um:0.2 4k-O1-async newfs:10.3 tar:100.1 um:1.9 rm:66.4 um:0.6 8k-O1-async newfs:4.5 tar:67.3 um:1.5 rm:51.2 um:0.4 16k-O1-async newfs:2.3 tar:47.1 um:0.9 rm:51.5 um:0.4 32k-O1-async newfs:1.2 tar:33.8 um:1.0 rm:70.8 um:0.3 64k-O1-async newfs:0.6 tar:119.9 um:1.0 rm:146.0 um:0.1 --------------------------------------------------------------------- wd1 at atabus1 drive 0: <WDC WD740GD-00FLC0> wd1: drive supports 16-sector PIO transfers, LBA48 addressing wd1: 70911 MB, 144073 cyl, 16 head, 63 sec, 512 bytes/sect x 145226112 sectors wd1: 32-bit data port wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133) wd1(viaide0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA data transfers) 4k-O2-softdep newfs:2.3 tar:126.9 um:5.2 rm:71.3 um:0.6 8k-O2-softdep newfs:0.8 tar:69.5 um:4.5 rm:55.2 um:0.5 16k-O2-softdep newfs:0.4 tar:59.1 um:2.0 rm:57.8 um:0.3 32k-O2-softdep newfs:0.2 tar:66.2 um:0.6 rm:70.4 um:0.3 64k-O2-softdep newfs:0.2 tar:659.2 um:0.9 rm:143.1 um:0.1 4k-O1-softdep newfs:10.2 tar:113.8 um:4.7 rm:64.3 um:0.5 8k-O1-softdep newfs:4.3 tar:69.5 um:4.8 rm:51.4 um:0.5 16k-O1-softdep newfs:2.3 tar:55.9 um:2.8 rm:54.3 um:0.4 32k-O1-softdep newfs:1.2 tar:59.4 um:2.6 rm:71.7 um:0.3 64k-O1-softdep newfs:0.6 tar:86.8 um:1.1 rm:138.5 um:0.1 4k-O2- newfs:2.4 tar:140.3 um:1.8 rm:71.7 um:0.7 8k-O2- newfs:0.8 tar:85.3 um:1.3 rm:55.0 um:0.4 16k-O2- newfs:0.4 tar:89.5 um:0.7 rm:51.7 um:0.3 32k-O2- newfs:0.3 tar:136.9 um:0.7 rm:71.8 um:0.3 64k-O2- newfs:0.2 tar:186.1 um:0.3 rm:143.2 um:0.2 4k-O1- newfs:10.2 tar:129.7 um:1.7 rm:64.4 um:0.7 8k-O1- newfs:4.4 tar:84.6 um:1.2 rm:50.3 um:0.4 16k-O1- newfs:2.3 tar:94.3 um:0.8 rm:54.1 um:0.4 32k-O1- newfs:1.2 tar:159.7 um:0.7 rm:73.3 um:0.2 64k-O1- newfs:0.6 tar:181.3 um:0.6 rm:140.5 um:0.1 4k-O2-async newfs:2.5 tar:110.1 um:1.7 rm:71.6 um:0.6 8k-O2-async newfs:0.8 tar:59.4 um:1.0 rm:54.4 um:0.4 16k-O2-async newfs:0.4 tar:45.9 um:0.7 rm:53.6 um:0.4 32k-O2-async newfs:0.3 tar:36.3 um:0.9 rm:68.2 um:0.3 64k-O2-async newfs:0.2 tar:62.6 um:0.7 rm:144.6 um:0.2 4k-O1-async newfs:10.2 tar:94.2 um:1.7 rm:64.9 um:0.6 8k-O1-async newfs:4.3 tar:77.1 um:1.5 rm:51.5 um:0.5 16k-O1-async newfs:2.3 tar:42.7 um:0.8 rm:55.4 um:0.4 32k-O1-async newfs:1.2 tar:41.6 um:0.8 rm:80.6 um:0.2 64k-O1-async newfs:0.7 tar:142.7 um:0.9 rm:136.4 um:0.2 --------------------------------------------------------------------- Using both disks from WD740GD-0 and WD740GD-1, raidframe RAID1, 128 sectors per stripe 4k-O2-softdep newfs:2.2 tar:198.9 um:9.5 rm:106.9 um:0.9 8k-O2-softdep newfs:0.6 tar:98.3 um:6.5 rm:67.6 um:0.5 16k-O2-softdep newfs:0.3 tar:79.8 um:2.9 rm:67.8 um:0.3 32k-O2-softdep newfs:0.2 tar:84.6 um:1.5 rm:119.8 um:0.0 64k-O2-softdep newfs:0.1 tar:964.7 um:2.2 rm:190.3 um:0.1 4k-O1-softdep newfs:10.3 tar:168.0 um:7.9 rm:123.0 um:0.0 8k-O1-softdep newfs:4.3 tar:89.2 um:7.0 rm:61.9 um:0.0 16k-O1-softdep newfs:2.2 tar:77.5 um:6.2 rm:114.2 um:0.0 32k-O1-softdep newfs:1.2 tar:70.3 um:5.5 rm:148.4 um:0.0 64k-O1-softdep newfs:0.6 tar:108.1 um:3.7 rm:155.0 um:0.0 4k-O2- newfs:2.2 tar:280.1 um:3.5 rm:129.5 um:0.3 8k-O2- newfs:0.7 tar:138.3 um:1.8 rm:68.0 um:0.1 16k-O2- newfs:0.2 tar:115.7 um:1.9 rm:66.6 um:0.2 32k-O2- newfs:0.1 tar:164.0 um:0.6 rm:98.6 um:0.1 64k-O2- newfs:0.1 tar:233.8 um:0.9 rm:172.1 um:0.0 4k-O1- newfs:10.2 tar:302.7 um:4.6 rm:122.8 um:0.6 8k-O1- newfs:4.5 tar:137.8 um:2.5 rm:61.0 um:0.0 16k-O1- newfs:2.5 tar:133.2 um:1.9 rm:109.9 um:0.0 32k-O1- newfs:1.2 tar:211.5 um:1.5 rm:177.5 um:0.0 64k-O1- newfs:0.6 tar:240.1 um:1.2 rm:159.6 um:0.0 4k-O2-async newfs:2.2 tar:144.2 um:4.8 rm:129.7 um:0.1 8k-O2-async newfs:0.7 tar:74.7 um:3.0 rm:67.7 um:0.2 16k-O2-async newfs:0.3 tar:57.7 um:1.4 rm:65.4 um:0.2 32k-O2-async newfs:0.1 tar:45.2 um:1.2 rm:111.6 um:0.0 64k-O2-async newfs:0.1 tar:72.4 um:0.6 rm:171.9 um:0.0 4k-O1-async newfs:10.2 tar:122.3 um:7.3 rm:120.3 um:0.1 8k-O1-async newfs:4.6 tar:68.4 um:3.8 rm:59.3 um:0.0 16k-O1-async newfs:2.5 tar:53.8 um:2.7 rm:69.1 um:0.0 32k-O1-async newfs:1.2 tar:42.8 um:2.4 rm:131.8 um:0.0 64k-O1-async newfs:0.6 tar:71.8 um:1.7 rm:158.1 um:0.0 --------------------------------------------------------------------- Using both disks from WD740GD-0 and WD740GD-1, raidframe RAID1, 64 sectors per stripe 4k-O2-softdep newfs:2.2 tar:189.8 um:6.9 rm:107.9 um:0.3 8k-O2-softdep newfs:0.6 tar:99.8 um:3.8 rm:69.3 um:0.4 16k-O2-softdep newfs:0.2 tar:82.8 um:1.5 rm:66.3 um:0.0 32k-O2-softdep newfs:0.1 tar:89.4 um:1.0 rm:104.7 um:0.1 64k-O2-softdep newfs:0.1 tar:104.8 um:1.4 rm:258.7 um:0.1 4k-O1-softdep newfs:10.5 tar:168.0 um:8.0 rm:129.8 um:0.1 8k-O1-softdep newfs:4.5 tar:95.5 um:3.6 rm:63.8 um:0.2 16k-O1-softdep newfs:2.4 tar:73.8 um:4.6 rm:102.4 um:0.1 32k-O1-softdep newfs:1.2 tar:71.8 um:5.0 rm:144.7 um:0.0 64k-O1-softdep newfs:0.5 tar:103.9 um:4.2 rm:265.9 um:0.0 4k-O2- newfs:2.3 tar:269.2 um:3.3 rm:108.6 um:0.1 8k-O2- newfs:0.6 tar:122.7 um:2.0 rm:70.0 um:0.1 16k-O2- newfs:0.3 tar:120.5 um:2.1 rm:62.9 um:0.1 32k-O2- newfs:0.1 tar:160.6 um:1.8 rm:122.9 um:0.1 64k-O2- newfs:0.1 tar:236.1 um:1.2 rm:253.1 um:0.0 4k-O1- newfs:10.8 tar:305.8 um:4.9 rm:138.4 um:0.0 8k-O1- newfs:4.4 tar:153.6 um:2.4 rm:64.6 um:0.1 16k-O1- newfs:2.4 tar:121.9 um:1.5 rm:71.5 um:0.1 32k-O1- newfs:1.1 tar:229.7 um:1.6 rm:123.6 um:0.0 64k-O1- newfs:0.6 tar:250.7 um:0.4 rm:264.0 um:0.0 4k-O2-async newfs:2.3 tar:142.7 um:5.7 rm:116.3 um:0.1 8k-O2-async newfs:0.7 tar:75.2 um:3.2 rm:69.5 um:0.4 16k-O2-async newfs:0.3 tar:56.7 um:2.3 rm:61.8 um:0.3 32k-O2-async newfs:0.1 tar:45.6 um:2.0 rm:123.7 um:0.1 64k-O2-async newfs:0.1 tar:86.1 um:1.4 rm:257.5 um:0.1 4k-O1-async newfs:10.9 tar:125.2 um:8.5 rm:130.6 um:0.1 8k-O1-async newfs:4.6 tar:69.0 um:3.9 rm:64.6 um:0.0 16k-O1-async newfs:2.4 tar:53.6 um:3.0 rm:112.8 um:0.0 32k-O1-async newfs:1.2 tar:43.5 um:2.5 rm:126.6 um:0.0 64k-O1-async newfs:0.6 tar:56.7 um:1.9 rm:264.6 um:0.0 --------------------------------------------------------------------- -- David Brownlee -- [email protected]
disktest
(text/plain, 1.4 KB)
#!/usr/pkg/bin/perl
use Time::HiRes qw(time);
my @blocksizes = qw(4 8 16 32 64);
my @fstypes = qw(2 1);
my @mountopts = ('softdep', '', 'async');
if (@ARGV != 1)
{
print "Usage: disktest partition\n";
exit 1;
}
my $tarfile = 'OOo_1.1.4_source.tar.gz';
my $disk = $ARGV[0];
$disk =~ s#/dev/##;
system('umount -f /mnt > /dev/null');
foreach my $mountopt (@mountopts)
{
foreach my $fstype (@fstypes)
{
foreach my $blocksize (@blocksizes)
{
printf("%2dk-O$fstype-%-7s ", $blocksize, $mountopt);
time_cmd("newfs -O $fstype -b ".($blocksize*1024)." /dev/r$disk");
if ($mountopt)
{ system("mount -o $mountopt /dev/$disk /mnt"); }
else
{ system("mount /dev/$disk /mnt"); }
chdir('/mnt');
time_cmd("tar xzpf $tarfile");
chdir('/');
time_cmd('umount /mnt');
system("mount /dev/$disk /mnt");
time_cmd('rm -rf /mnt/*');
time_cmd('umount /mnt');
print "\n";
}
}
}
sub time_cmd
{
my($cmd) = @_;
my $name = $cmd;
$name =~ s/ .*//;
if ($name eq 'umount')
{ $name = 'um'; }
print " $name:";
my $start = time;
open(CMD, "$cmd|");
my @output = <CMD>;
close(CMD);
my $elapsed = time - $start;
if ($?)
{ print @output; }
if ($elapsed >= 1000)
{ printf("%-5d ", $elapsed); }
else
{ printf("%-5.1f ", $elapsed); }
}