Subject: Re: results from playing around with the new dirpref code
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: Luke Mewburn <lukem@wasabisystems.com>
List: tech-perform
Date: 09/04/2001 11:50:18
--2JFBq9zoW8cOFH7v
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Mon, Sep 03, 2001 at 01:15:49PM -0400, Thor Lancelot Simon wrote:
> Looking at all of Luke's tables, I note that FFS performs *terribly* when
> there are a large number of cylinder groups and when there are not enough
> vnodes for it to be able to cache data for all of the newly created files/
> directories.
>
> This doesn't surprise me. Running out of vnodes forces directory and file
> data writes; having a large number of cylinder groups (because allocation
> is spread ~evenly among the CGs) means that to write an arbitrary file
> you are far more likely to have to seek. The interaction between the
> insane number of cylinder groups we create on modern disks and the far,
> far too small default maxvnodes is truly poisonous; it makes softdep look
> particularly bad because it's being forced to write out whole subtrees of
> dependencies, seeking the head all over the disk, when a given vnode is
> recycled.
>
> [ ... ]
>
> Worse, with modern disks, because the disk addresses of all of the inodes
> for a CG must fit in the CG head block, with an 8K blocksize we *cannot*
> have a reasonable (small) number of cylinder groups.
You can tweak the density up (-i ...) to help here, but sometimes
that's not useful.
> To get a reasonable number of cylinder groups we need to kick the default
> blocksize to at least 16K; we also need to adjust the geometries of some
> of our "logical disk" type drivers to make the cylinders themselves bigger
> (for example, RAID should use a *multiple of the stripe size*, not the
> stripe size, as its cylinder size) or we can't avoid the problem there at
> all.
>
> We should actually benchmark filesystems with many *less* cylinder groups
> (32K filesystems) against those with about 50 cylinder groups on modern
> disks to see which way we handle real workloads better. However, I think
> there's plenty of evidence to support switching to 16K blocks and as many
> cpg as we can get, given the geometry (about 300 for most new disks) right
> now.
So, I did a bit more testing, this time with the smallest number of
cylinder groups I could get away with, and filesystems with 16K/2K
and 32K/4K configuration. I decided not to bother with olddirpref
for the 16K and 32K file systems, because we know they suck. :)
Here's my updated results. The new entries are `disk 3' and `disk 4'
Luke.
--2JFBq9zoW8cOFH7v
Content-Type: text/plain; charset=us-ascii
Content-Description: dirpref-results
Content-Disposition: attachment; filename=dirprefres
machine config
--------------
NetBSD 1.5X (HIPPOLYTE) #7: Mon Sep 3 14:25:30 EST 2001
lukem@hippolyte:/var/scratch/obj.i386/sys/HIPPOLYTE
cpu0: Intel Pentium III (Coppermine) (686-class), 599.74 MHz
cpu0: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 2-way
cpu0: L2 cache 256 KB 32b/line 8-way
cpu0: features 387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 387fbff<PGE,MCA,CMOV,FGPAT,PSE36,PN,MMX,FXSR,SSE>
cpu0: serial number 0000-0681-0003-B6B3-0359-5689
total memory = 1023 MB
avail memory = 945 MB
using 11424 buffers containing 52504 KB of memory
BIOS32 rev. 0 found at 0xfdb70
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82840 Host (rev. 0x01)
pchb0: random number generator enabled
ppb0 at pci0 dev 1 function 0: Intel 82840 AGP (rev. 0x01)
pci1 at ppb0 bus 4
pci1: i/o space, memory space enabled
vga1 at pci1 dev 0 function 0: Nvidia Corporation GeForce DDR (rev. 0x10)
wsdisplay0 at vga1: console (80x25, vt100 emulation)
ppb1 at pci0 dev 2 function 0: Intel 82840 PCI (rev. 0x01)
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled
ppb2 at pci2 dev 31 function 0: Intel product 0x1360 (rev. 0x02)
pci3 at ppb2 bus 3
pci3: i/o space, memory space enabled
Intel 82806AA PCI64 Hub Advanced Programmable Interrupt Controller (8259 PIC system, interface 0x20, revision 0x01) at pci3 dev 0 function 0 not configured
ppb3 at pci0 dev 30 function 0: Intel 82801AA Hub-to-PCI Bridge (rev. 0x02)
pci4 at ppb3 bus 1
pci4: i/o space, memory space enabled
twe0 at pci4 dev 1 function 0: 3ware Escalade
twe0: interrupting at irq 10
ld0 at twe0 unit 0
ld0: 29313 MB, 7444 cyl, 128 head, 63 sec, 512 bytes/sect x 60034432 sectors
fxp0 at pci4 dev 8 function 0: i82559 Ethernet, rev 8
fxp0: interrupting at irq 11
fxp0: Ethernet address 00:30:48:00:38:fc
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pcib0 at pci0 dev 31 function 0
pcib0: Intel 82801AA LPC Interface Bridge (rev. 0x02)
pciide0 at pci0 dev 31 function 1: Intel 82801AA IDE Controller (ICH) (rev. 0x02)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
atapibus0 at pciide0 channel 0: 2 targets
cd0 at atapibus0 drive 0: <SONY CDU4811, , PY0A> type 5 cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
pciide0: primary channel interrupting at irq 14
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode
wd0 at pciide0 channel 1 drive 0: <IBM-DTLA-307030>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 29314 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 60036480 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
pciide0: secondary channel interrupting at irq 15
wd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA data transfers)
uhci0 at pci0 dev 31 function 2: Intel 82801AA USB Controller (rev. 0x02)
uhci0: interrupting at irq 9
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
Intel 82801AA SMBus Controller (SMBus serial bus, revision 0x02) at pci0 dev 31 function 3 not configured
auich0 at pci0 dev 31 function 5: i82801AA (ICH) AC-97 Audio
auich0: interrupting at irq 10
auich0: Crystal CS4299 codec; headphone, 20 bit DAC, 18 bit ADC, Spatializer 3D
audio0 at auich0: full duplex, mmap, independent
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com0: kgdb
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
lpt0 at isa0 port 0x378-0x37b irq 7
pcppi0 at isa0 port 0x61
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
apm0 at mainbus0: Power Management spec V1.2
biomask f765 netmask ff65 ttymask ffe7
IPsec: Initialized Security Association Processing.
ums0 at uhub0 port 1 configuration 1 interface 0
ums0: Microsoft Microsoft IntelliMouse\M-. Optical, rev 1.10/1.08, addr 2, iclass 3/1
ums0: 5 buttons and Z dir.
wsmouse0 at ums0 mux 0
boot device: ld0
root on ld0a dumps on ld0b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
==== disk 1 ====
too many small cylinder groups
endian little-endian
magic 11954 time Tue Nov 5 05:01:04 1935
cylgrp dynamic inodes 4.4BSD fslevel 3 softdep disabled
nbfree 3692676 ndir 1 nifree 1270653 nffree 8
ncg 19854 ncyl 59560 size 30018240 blocks 29541417
bsize 8192 shift 13 mask 0xffffe000
fsize 1024 shift 10 mask 0xfffffc00
frag 8 shift 3 fsbtodb 1
cpg 3 bpg 189 fpg 1512 ipg 64
minfree 5% optim time maxcontig 8 maxbpg 2048
rotdelay 0ms headswitch 0us trackseek 0us rps 120
ntrak 16 nsect 63 npsect 63 spc 1008
symlinklen 60 trackskew 0 interleave 1 contigsumsize 8
maxfilesize 0x0000400801017fff
nindir 2048 inopb 64 nspf 2
sblkno 16 cblkno 24 iblkno 32 dblkno 40
sbsize 2048 cgsize 1024 offset 32 mask 0xfffffff0
csaddr 40 cssize 318464 shift 9 mask 0xfffffe00
cgrotor 0 fmod 0 ronly 0 clean 0x01
old dirpref, maxvnodes 24842, disk 1
------------------------------------
Mode: rw
extract: 591.27 real 4.65 user 58.56 sys
remove: 526.78 real 0.27 user 8.76 sys
Mode: async
extract: 631.19 real 5.16 user 56.12 sys
remove: 228.55 real 0.26 user 6.13 sys
Mode: sync
extract: 608.94 real 4.66 user 73.33 sys
remove: 527.43 real 0.37 user 8.67 sys
Mode: softdep
extract: 624.28 real 4.52 user 61.56 sys
remove: 830.16 real 0.36 user 6.28 sys
(note: umount for softdep took a noticable amount of time, which is why I
changed the benchmark to time the umount as well)
old dirpref, maxvnodes 80000, disk 1
------------------------------------
Mode: rw
extract: 579.42 real 4.86 user 60.52 sys
umount: 2.92 real 0.00 user 2.83 sys
remove: 527.36 real 0.29 user 10.46 sys
umount: 0.86 real 0.00 user 0.05 sys
Mode: async
extract: 605.63 real 4.86 user 53.25 sys
umount: 3.98 real 0.00 user 3.95 sys
remove: 228.34 real 0.36 user 6.08 sys
umount: 1.76 real 0.00 user 0.05 sys
Mode: sync
extract: 585.90 real 4.79 user 72.14 sys
umount: 3.96 real 0.00 user 3.94 sys
remove: 526.41 real 0.26 user 8.82 sys
umount: 0.88 real 0.00 user 0.05 sys
Mode: softdep
extract: 619.76 real 4.83 user 59.69 sys
umount: 4.89 real 0.00 user 2.96 sys
remove: 696.70 real 0.26 user 5.14 sys
umount: 477.65 real 0.00 user 1.91 sys
new dirpref, maxvnodes 24842, disk 1
------------------------------------
Mode: rw
extract: 245.98 real 4.45 user 34.55 sys
umount: 4.10 real 0.00 user 1.09 sys
remove: 349.78 real 0.27 user 8.24 sys
umount: 0.15 real 0.00 user 0.04 sys
Mode: async
extract: 226.59 real 4.49 user 29.81 sys
umount: 6.68 real 0.00 user 0.87 sys
remove: 81.41 real 0.31 user 5.44 sys
umount: 1.53 real 0.00 user 0.04 sys
Mode: sync
extract: 346.64 real 4.42 user 48.84 sys
umount: 1.28 real 0.00 user 1.08 sys
remove: 393.18 real 0.24 user 8.24 sys
umount: 0.42 real 0.00 user 0.03 sys
Mode: softdep
extract: 207.12 real 4.74 user 36.53 sys
umount: 1.32 real 0.00 user 1.12 sys
remove: 311.44 real 0.22 user 5.79 sys
umount: 78.91 real 0.00 user 0.09 sys
new dirpref, maxvnodes 80000, disk 1
------------------------------------
Mode: rw
extract: 238.47 real 4.31 user 32.69 sys
umount: 3.99 real 0.00 user 3.95 sys
remove: 349.27 real 0.20 user 8.22 sys
umount: 0.36 real 0.00 user 0.05 sys
Mode: async
extract: 176.61 real 4.34 user 28.72 sys
umount: 8.95 real 0.00 user 3.96 sys
remove: 74.30 real 0.40 user 5.34 sys
umount: 1.15 real 0.00 user 0.05 sys
Mode: sync
extract: 339.81 real 4.52 user 47.43 sys
umount: 5.98 real 0.00 user 3.94 sys
remove: 401.05 real 0.24 user 8.19 sys
umount: 0.40 real 0.00 user 0.05 sys
Mode: softdep
extract: 182.36 real 4.60 user 35.06 sys
umount: 22.13 real 0.00 user 4.26 sys
remove: 261.88 real 0.26 user 4.88 sys
umount: 100.87 real 0.00 user 0.13 sys
==== disk 2 ====
`normal' cylinder groups (-c 64)
endian little-endian
magic 11954 time Mon Sep 3 16:15:26 2001
id [ 0 0 ]
cylgrp dynamic inodes 4.4BSD fslevel 3 softdep disabled
nbfree 3720621 ndir 1 nifree 1906685 nffree 8
ncg 931 ncyl 59560 size 30018240 blocks 29764977
bsize 8192 shift 13 mask 0xffffe000
fsize 1024 shift 10 mask 0xfffffc00
frag 8 shift 3 fsbtodb 1
cpg 64 bpg 4032 fpg 32256 ipg 2048
minfree 5% optim time maxcontig 8 maxbpg 2048
rotdelay 0ms rps 120
ntrak 16 nsect 63 npsect 63 spc 1008
symlinklen 60 trackskew 0 interleave 1 contigsumsize 8
maxfilesize 0x0000400801017fff
nindir 2048 inopb 64 nspf 2
sblkno 16 cblkno 24 iblkno 32 dblkno 288
sbsize 2048 cgsize 6144 offset 32 mask 0xfffffff0
csaddr 288 cssize 15360 shift 9 mask 0xfffffe00
cgrotor 0 fmod 0 ronly 0 clean 0x01
old dirpref, maxvnodes 24842, disk 2
------------------------------------
Mode: rw
extract: 470.31 real 4.57 user 36.40 sys
umount: 5.91 real 0.00 user 0.92 sys
remove: 449.10 real 0.28 user 8.43 sys
umount: 2.08 real 0.00 user 0.03 sys
Mode: async
extract: 185.38 real 4.33 user 32.03 sys
umount: 8.42 real 0.00 user 0.88 sys
remove: 174.93 real 0.27 user 5.71 sys
umount: 1.88 real 0.00 user 0.03 sys
Mode: sync
extract: 469.81 real 4.67 user 50.17 sys
umount: 5.69 real 0.00 user 0.90 sys
remove: 451.40 real 0.23 user 8.48 sys
umount: 0.50 real 0.00 user 0.01 sys
Mode: softdep
extract: 465.18 real 4.36 user 39.21 sys
umount: 6.35 real 0.00 user 1.08 sys
remove: 406.45 real 0.43 user 6.69 sys
umount: 53.90 real 0.00 user 0.04 sys
old dirpref, maxvnodes 80000, disk 2
------------------------------------
Mode: rw
extract: 430.93 real 4.64 user 37.20 sys
umount: 8.27 real 0.00 user 2.81 sys
remove: 453.37 real 0.38 user 10.06 sys
umount: 1.31 real 0.00 user 0.05 sys
Mode: async
extract: 136.87 real 4.25 user 30.46 sys
umount: 11.79 real 0.00 user 3.47 sys
remove: 167.66 real 0.34 user 5.65 sys
umount: 5.95 real 0.00 user 0.05 sys
Mode: sync
extract: 445.33 real 4.61 user 48.87 sys
umount: 7.83 real 0.00 user 3.94 sys
remove: 451.72 real 0.31 user 8.39 sys
umount: 0.72 real 0.00 user 0.05 sys
Mode: softdep
extract: 374.42 real 4.29 user 37.03 sys
umount: 15.33 real 0.00 user 4.20 sys
remove: 360.48 real 0.36 user 5.34 sys
umount: 68.43 real 0.00 user 0.06 sys
new dirpref, maxvnodes 24842, disk 2
------------------------------------
Mode: rw
extract: 163.90 real 4.54 user 34.19 sys
umount: 1.21 real 0.00 user 0.90 sys
remove: 218.22 real 0.27 user 8.00 sys
umount: 0.37 real 0.00 user 0.03 sys
Mode: async
extract: 55.65 real 4.50 user 35.58 sys
umount: 2.97 real 0.00 user 0.91 sys
remove: 15.14 real 0.30 user 5.25 sys
umount: 0.90 real 0.00 user 0.03 sys
Mode: sync
extract: 224.05 real 4.67 user 48.45 sys
umount: 1.13 real 0.00 user 0.91 sys
remove: 222.71 real 0.35 user 7.91 sys
umount: 0.77 real 0.00 user 0.02 sys
Mode: softdep
extract: 88.62 real 4.61 user 36.67 sys
umount: 3.64 real 0.00 user 0.96 sys
remove: 147.72 real 0.23 user 5.75 sys
umount: 23.81 real 0.00 user 0.02 sys
new dirpref, maxvnodes 80000, disk 2
------------------------------------
Mode: rw
extract: 159.08 real 4.61 user 32.33 sys
umount: 4.04 real 0.00 user 3.98 sys
remove: 217.95 real 0.18 user 8.06 sys
umount: 0.63 real 0.00 user 0.05 sys
Mode: async
extract: 42.14 real 4.50 user 28.35 sys
umount: 4.03 real 0.00 user 3.97 sys
remove: 15.46 real 0.28 user 5.28 sys
umount: 0.93 real 0.00 user 0.05 sys
Mode: sync
extract: 220.01 real 4.70 user 46.93 sys
umount: 4.04 real 0.00 user 4.00 sys
remove: 218.42 real 0.34 user 7.91 sys
umount: 0.68 real 0.00 user 0.05 sys
Mode: softdep
extract: 80.30 real 4.39 user 35.49 sys
umount: 4.15 real 0.00 user 4.10 sys
remove: 47.47 real 0.37 user 4.58 sys
umount: 32.36 real 0.00 user 0.07 sys
==== disk 3 ====
small number of cylinder groups (smallest allowed - -c 256), with a 16K/2K
block/fragment size and density of 16k/inode
endian little-endian
magic 11954 time Tue Sep 4 09:25:15 2001
id [ 0 0 ]
cylgrp dynamic inodes 4.4BSD fslevel 3 softdep disabled
nbfree 1861017 ndir 1 nifree 1892349 nffree 13
ncg 168 ncyl 59560 size 15009120 blocks 14888150
bsize 16384 shift 14 mask 0xffffc000
fsize 2048 shift 11 mask 0xfffff800
frag 8 shift 3 fsbtodb 2
cpg 356 bpg 11214 fpg 89712 ipg 11264
minfree 5% optim time maxcontig 4 maxbpg 4096
rotdelay 0ms rps 120
ntrak 16 nsect 63 npsect 63 spc 1008
symlinklen 60 trackskew 0 interleave 1 contigsumsize 4
maxfilesize 0x000400400402ffff
nindir 4096 inopb 128 nspf 4
sblkno 8 cblkno 16 iblkno 24 dblkno 728
sbsize 2048 cgsize 16384 offset 16 mask 0xfffffff0
csaddr 728 cssize 4096 shift 10 mask 0xfffffc00
cgrotor 0 fmod 0 ronly 0 clean 0x01
new dirpref, maxvnodes 24842, disk 3
------------------------------------
Mode: rw
extract: 157.80 real 4.15 user 34.82 sys
umount: 1.05 real 0.00 user 0.90 sys
remove: 227.95 real 0.33 user 7.94 sys
umount: 0.26 real 0.00 user 0.03 sys
Mode: async
extract: 51.03 real 4.73 user 35.73 sys
umount: 2.84 real 0.00 user 0.88 sys
remove: 13.33 real 0.23 user 5.29 sys
umount: 0.21 real 0.00 user 0.03 sys
Mode: sync
extract: 224.18 real 4.43 user 48.61 sys
umount: 1.05 real 0.00 user 0.90 sys
remove: 231.84 real 0.27 user 8.01 sys
umount: 0.24 real 0.00 user 0.03 sys
Mode: softdep
extract: 92.70 real 4.47 user 37.75 sys
umount: 1.93 real 0.00 user 0.92 sys
remove: 144.71 real 0.23 user 5.66 sys
umount: 26.50 real 0.00 user 0.02 sys
new dirpref, maxvnodes 80000, disk 3
------------------------------------
Mode: rw
extract: 160.08 real 4.49 user 35.52 sys
umount: 2.84 real 0.00 user 2.80 sys
remove: 236.63 real 0.30 user 9.66 sys
umount: 0.30 real 0.00 user 0.05 sys
Mode: async
extract: 37.07 real 4.41 user 28.51 sys
umount: 3.94 real 0.00 user 3.92 sys
remove: 13.30 real 0.26 user 5.24 sys
umount: 0.30 real 0.00 user 0.05 sys
Mode: sync
extract: 229.72 real 4.78 user 46.91 sys
umount: 3.97 real 0.00 user 3.92 sys
remove: 240.78 real 0.29 user 7.91 sys
umount: 0.32 real 0.00 user 0.05 sys
Mode: softdep
extract: 77.42 real 4.45 user 35.64 sys
umount: 5.94 real 0.00 user 4.10 sys
remove: 44.02 real 0.22 user 4.61 sys
umount: 40.00 real 0.00 user 0.06 sys
==== disk 4 ====
small number of cylinder groups (smallest allowed - -c 1176), with a 32K/4K
block/fragment size and density of 16k/inode
newfs -b 32k -f 4k -i 16k -c 1176
endian little-endian
magic 11954 time Tue Sep 4 10:29:41 2001
id [ 0 0 ]
cylgrp dynamic inodes 4.4BSD fslevel 3 softdep disabled
nbfree 930570 ndir 1 nifree 1893117 nffree 14
ncg 51 ncyl 59560 size 7504560 blocks 7444575
bsize 32768 shift 15 mask 0xffff8000
fsize 4096 shift 12 mask 0xfffff000
frag 8 shift 3 fsbtodb 3
cpg 1176 bpg 18522 fpg 148176 ipg 37120
minfree 5% optim time maxcontig 2 maxbpg 8192
rotdelay 0ms rps 120
ntrak 16 nsect 63 npsect 63 spc 1008
symlinklen 60 trackskew 0 interleave 1 contigsumsize 2
maxfilesize 0x004002001005ffff
nindir 8192 inopb 256 nspf 8
sblkno 8 cblkno 16 iblkno 24 dblkno 1184
sbsize 4096 cgsize 32768 offset 8 mask 0xfffffff0
csaddr 1184 cssize 4096 shift 11 mask 0xfffff800
cgrotor 0 fmod 0 ronly 0 clean 0x01
new dirpref, maxvnodes 24842, disk 4
------------------------------------
Mode: rw
extract: 180.22 real 4.97 user 33.89 sys
umount: 1.00 real 0.00 user 0.90 sys
remove: 267.83 real 0.21 user 8.08 sys
umount: 0.13 real 0.00 user 0.02 sys
Mode: async
extract: 55.19 real 4.41 user 36.64 sys
umount: 5.23 real 0.00 user 0.91 sys
remove: 15.93 real 0.30 user 5.21 sys
umount: 0.23 real 0.00 user 0.01 sys
Mode: sync
extract: 261.20 real 4.44 user 48.92 sys
umount: 1.02 real 0.00 user 0.90 sys
remove: 264.37 real 0.39 user 7.91 sys
umount: 0.12 real 0.00 user 0.03 sys
Mode: softdep
extract: 99.54 real 4.55 user 38.75 sys
umount: 3.21 real 0.00 user 0.99 sys
remove: 111.07 real 0.31 user 5.45 sys
umount: 40.81 real 0.00 user 0.03 sys
new dirpref, maxvnodes 80000, disk 4
------------------------------------
Mode: rw
extract: 180.56 real 4.26 user 36.65 sys
umount: 2.90 real 0.00 user 2.82 sys
remove: 253.42 real 0.31 user 9.65 sys
umount: 0.10 real 0.00 user 0.05 sys
Mode: async
extract: 38.23 real 4.51 user 29.16 sys
umount: 4.10 real 0.00 user 4.01 sys
remove: 12.27 real 0.31 user 5.21 sys
umount: 0.18 real 0.00 user 0.05 sys
Mode: sync
extract: 256.68 real 4.42 user 47.81 sys
umount: 3.97 real 0.00 user 3.95 sys
remove: 256.67 real 0.30 user 7.97 sys
umount: 0.10 real 0.00 user 0.05 sys
Mode: softdep
extract: 96.90 real 4.62 user 37.45 sys
umount: 4.69 real 0.00 user 4.04 sys
remove: 27.71 real 0.26 user 4.62 sys
umount: 64.17 real 0.00 user 0.06 sys
--2JFBq9zoW8cOFH7v
Content-Type: text/plain; charset=us-ascii
Content-Description: testdisk
Content-Disposition: attachment; filename=testdisk
#!/bin/sh
DEV=/dev/wd0a
MOUNT=/mnt
TARFILE=/var/tmp/pkgsrc.tar.gz
EXTRACTED=pkgsrc
OPERATIONS=${1:-rw async sync softdep}
#trap "umount $MOUNT" EXIT
benchit()
{
_mode=$1
if [ -z "$_mode" ]; then
echo "usage: benchit() mode"
exit 1
fi
echo "Mode: $_mode"
mount -o $_mode $DEV $MOUNT
echo -n "extract: "
time tar -C $MOUNT -zxf $TARFILE
sync
echo -n " umount: "
time umount $MOUNT
mount -o $_mode $DEV $MOUNT
echo -n " remove: "
time rm -rf $MOUNT/$EXTRACTED
sync
echo -n " umount: "
time umount $MOUNT
echo ""
}
echo "Testing $DEV on $MOUNT, extracting $TARFILE to $MOUNT/$EXTRACTED"
echo ""
for op in $OPERATIONS; do
benchit $op
done
--2JFBq9zoW8cOFH7v--