Dennis Clarke dclarke@blastwave.org wrote:
A little data never hurts. Even if the numbers mean little.
test 1 - Debian Linux 6.0.5 on x86_64
Given the fact, that you did not run star -no-fifo, you compare an insecure implementation (gtar never calls fsync(2)) with a secure by default implementation (star).
Also note: ZFS has one real problem: it is really slow if you force it to grant a stable sate on the medium. This is why ZFS is aprox. 4x slower in your test star (without -no-fsync) compared to gtar.
ext3 is slow with star (without -no-fsync) because ext3 it is not optimized. ext3 is fast with gtar because it cheats.
Solaris with UFS:
bzip2 -d < /tmp/linux-3.5.1.tar.bz2 > /dev/null 19.909r 19.770u 0.110s 99% 0M 0+0k 0st 0+0io 0pf+0w
OK, 19.77 seconds user CPU time.....
star -xp -xdot -time < /tmp/linux-3.5.1.tar.bz2 star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 70.477sec (6647 kBytes/sec) 1:10.489r 23.020u 9.010s 45% 0M 0+0k 0st 0+0io 0pf+0w
star -xp -xdot -time -no-fsync < /tmp/linux-3.5.1.tar.bz2 star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 74.161sec (6317 kBytes/sec) 1:14.174r 21.840u 4.640s 35% 0M 0+0k 0st 0+0io 0pf+0w
Only half of the System CPU time here because fsync(2) calls are missing...
gtar --totals -xf /tmp/linux-3.5.1.tar.bz2 Gesamtzahl gelesener Bytes: 479733760 (458MiB, 4,5MiB/s) 1:42.658r 23.150u 5.530s 27% 0M 0+0k 0st 0+0io 0pf+0w
gtar does not have a FIFO and thus is slower than star.
Now uncompressed (you see that the user CPU time for bzip2 is missing):
star -xp -xdot -time < /tmp/linux-3.5.1.tar star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 70.438sec (6651 kBytes/sec) 1:10.449r 0.520u 8.190s 12% 0M 0+0k 0st 0+0io 0pf+0w
star -xp -xdot -time -no-fsync < /tmp/linux-3.5.1.tar star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 86.624sec (5408 kBytes/sec) 1:26.636r 0.300u 3.960s 4% 0M 0+0k 0st 0+0io 0pf+0w
gtar --totals -xf /tmp/linux-3.5.1.tar Gesamtzahl gelesener Bytes: 479733760 (458MiB, 4,7MiB/s) 1:38.829r 0.440u 4.570s 5% 0M 0+0k 0st 0+0io 0pf+0w
Now ZFS being on a single disk like the UFS test before (let us omit the test with the compressed archive):
star -xp -xdot -time < /tmp/linux-3.5.1.tar star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 394.783sec (1186 kBytes/sec) 6:34.795r 0.580u 8.250s 2% 0M 0+0k 0st 0+0io 0pf+0w
As expected: ZFS is slow if you force it to grant a stable state.
star -xp -xdot -time -no-fsync < /tmp/linux-3.5.1.tar star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 11.085sec (42259 kBytes/sec) 11.096r 0.290u 4.380s 42% 0M 0+0k 0st 0+0io 0pf+0w
gtar --totals -xf /tmp/linux-3.5.1.tar Gesamtzahl gelesener Bytes: 479733760 (458MiB, 39MiB/s) 11.929r 0.360u 4.260s 38% 0M 0+0k 0st 0+0io 0pf+0w
As you see, if you permit star to be as insecure as gtar always is, star is always faster than gtar.
Now the same on a thumper (ZFS on RAIDZ2):
star -xp -xdot -time < /tmp/linux-3.5.1.tar star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 349.575sec (1340 kBytes/sec) 5:49.595r 0.690u 11.270s 3% 0M 0+0k 0st 0+0io 0pf+0w
star -xp -xdot -time -no-fsync < /tmp/linux-3.5.1.tar star: 46849 blocks + 0 bytes (total of 479733760 bytes = 468490.00k). star: Total time 4.626sec (101251 kBytes/sec) 4.654r 0.330u 4.990s 115% 0M 0+0k 0st 0+0io 0pf+0w
gtar --totals -xf /tmp/linux-3.5.1.tar Total bytes read: 479733760 (458MiB, 85MiB/s) 5.510r 0.430u 4.130s 82% 0M 0+0k 0st 0+0io 0pf+0w
Jörg