It's a dual quad-core 2008 Mac Pro, 8GB RAM and 4 hard disks. It's got a raidz1 zpool (tank) consisting of 3 x 1TB WD hard disks running El Capitan but also is set up to dual boot with FreeBSD. The 4th HD is the boot disk which is 500GB split between HFS+ for El Capitan and a root zpool (zroot) for FreeBSD. This means I can test with both OS X and FreeBSD performing operations on the same pool.
The pool was created with O3X 1.5.2 with ashift=12 and normalisation=formD, case-sensitive and checksum=skein. I've not got any settings in zsysctl.conf.
For the test, I've tar'd Xcode.app which (according to find has 215k+ files and 68k directories). I've stored this on the HFS+ boot partition in El capitan and then extracted it on to the raidz1 pool.
- Code: Select all
$ time tar xf ~/Downloads/xcode.tar
real 54m21.762s
user 0m6.074s
sys 2m12.978s
Which is about what I was seeing when I tried to copy it via Finder. I gave up after the estimated time dropped from a few minutes to 2 hours after about 1gb transfer.
To then compare with FreeBSD (xcode.tar stored on it's root zpool and expanded to tank)
- Code: Select all
$ time tar xf ~/xcode.tar
real 5m4.308s
user 0m5.234s
sys 2m54.182s
I'm wan quite surprised just how much quicker FreeBSD was than OS X. I'd expected a different and expected OS X to be slower but not 10x slower to the same pool on the same hardware.
And just as an extra comparison, on OS X I unpacked it from the zpool to the HFS+ partition:
- Code: Select all
$ time tar xf /data/temp/xcode.tar
real 3m41.661s
user 0m4.549s
sys 1m30.865s
Which is quicker than the FreeBSD time but then HFS+ is doing much less work when writing.
If I just copy the tar across from HFS+ to tank, then it behaves much as you'd expect:
- Code: Select all
$ time cp ~/Downloads/xcode.tar .
real 6m32.625s
user 0m0.022s
sys 0m21.794s
Still slower than FreeBSDs un-tar but perfectly usable.
I've not done any tuning on either system but not sure if this is a tuning issue or just the O3X implementation and the way it interacts with the El Capitan kernel.
The same happens if I then rm -rf the extracted Xcode.app. OS X took 50m31.783s and FreeBSD only took 1m20.689s.
Any thoughts or suggestions? I don't do this sort of large file operation often but it would be good to at least try and understand where the huge disparity comes from and if there's anything that can be done about it or do I just need to leave this sort of operations to run over-night?
For everything else, the performance of O3X-1.6.1 seems very good. I"ve got a lot of development projects (mostly C++) and Windows/Linux VMs running on it and it all runs very well. It's only when I do something which involves a huge number of files.
Thanks
Russell