Here are some raw data during my tests.
This tests consisted in timing mount/umount time for ufs and zfs
We are not dowing mount/umount using the "[zfs] mount -a" because it
is a serialized mount/umount.
instead we do mount/umount in parallel, using the shell script below
For UFS, we''ve created 2400 fs (which takes +2 hours), using one
metadevice, called d0, and 2400 x 100MB softpartitions on d0 (see
bottom for details)
for ZFS , 2 tests: 2400 and 10000 filesystems.
This was done on a Thumper with 500GB drives, using the same script below
enjoy.
s.
Results, using ptime:
* UFS: Mounting 2400 ufs filesystem (up to 30 mounts ops in parallel)
real 1:06.863
user 11.074
sys 53.473
*UFS: Unmount 2400 ufs filesystem (up to 30 umounts at same time)
real 1:02.891
user 9.103
sys 3:53.464
* ZFS: mount 2400 fs (up to mounts 30 in parallel):
real 21.852
user 11.635
sys 1:00.002
* ZFS: umount 2400 fs (up to mounts 30 in parallel):
real 31.838
user 11.568
sys 1:44.680
* ZFS: mount 10000 fs (up to mounts 30 in parallel):
real 2:21.493
user 1:00.641
sys 7:09.761
* ZFS: umount 10000 fs (up to mounts 30 in parallel):
real 5:00.628
user 50.395
sys 17:45.306
--------------------------------------------------------------------------------------------
#!/bin/sh
i=1
while [ $i -le 10000 ]
do
if [ `pgrep mount | wc -l|awk ''{print $1}''` -gt 30 ]; then
printf "$i "
sleep 1
fi
# Activate one line only
#From here
#(yes | newfs /dev/md/rdsk/d$i; echo "$i ")&
#(mkdir /export/d$i; echo $i)&
#(zfs create tank6/d$i && zfs set mountpoint=/export/d$i tank6/d$i
&&
printf "." )&
(zfs umount /export/d$i && printf ".") &
#(zfs mount tank6/d$i && printf ".") &
#(umount /export/d$i && printf ".") &
#(mount /dev/md/dsk/d$i /export/d$i && printf ".") &
#echo " /dev/md/dsk/d$i /dev/md/rdsk/d$i /export/d$i
ufs 1 yes -" >> /tmp/bb
#To here
i=`expr $i + 1`
done
--------------------------------------------------------------------------------------------
Create metadevice d0:
# metainit d0 1 8 c4t0d0s0 c4t1d0s0 c4t2d0s0 c4t3d0s0 c4t4d0s0
c4t5d0s0 c4t6d0s0 c4t7d0s0
create soft partitions: d1->d2400 (takes 2 hours, not paralellized)
# metainit dXXXX -p d0 100m
zfs fs creation:
-zpool create -f -m none tank6 c7t{0,1,2,3,4,5,6,7}d0
-for i from 1 -> 2400, do following:
zfs create tank6/d$i && zfs set mountpoint=/export/d$i tank6/d$i
- takes 3 minutes for 2400 fs
- takes 5.5 minutes for 10000fs