Squash Fs Comparisons
Table Of Contents
Contents
Introduction
GENERAL INFORMATION ON PERFORMANCE TESTS
The following performance tests were based on two file sets: the liveCD filesystem from the Ubuntu liveCD (Warty release), and the liveCD filesystem from the Damn Small Linux liveCD (release 0.8.4). The Ubuntu liveCD filesystem was used to test filesystem performance from CDROM and hard disk for Zisofs, Cloop, Squashfs 2.0 and Squashfs2.1. CRAMFS filesystem performance could not be tested for this filesystem bacause it exceeds the maximum supported size of CRAMFS. To test CRAMFS performance against Squashfs, the liveCD filesystem from Damn Small Linux was used.
NOTE: the usual warnings apply to these results, they are provided for illustrative purposes only, and due to different hardware and/or file data, you may obtain different results. As such the results are provided "as is" without any warranty (either express or implied) and you assume all risks as to their quality and accuracy.
As can be seen all the compressed filesystems are faster than the uncompressed filesystems. This is because modern computers are substantially I/O bound and the smaller disk seek-time and I/O incurred with a compressed filesystem outweighs the extra CPU overhead of decompression.
The tests were done on an Apple Power Book with an 867 MHz G4 PowerPC.
All tests were performed from a cold-cache.
Ubuntu liveCD performance tests
Here is the size comparison for the same filesystem contents, using several different file systems.
ext3 uncompressed size 1.4 GB ISO9660 uncompressed size 1.3 GB Zisofs compressed size 589.81 MB Cloop compressed size 471.89 MB Squashfs2.0 compressed size 448.58 MB Squashfs2.1 compressed size 448.58 MB
Performance tests from CDROM
Directory Lookup performance
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem mounted from CDROM
Zisofs 49.88 seconds (User 2.60 secs, Sys 11.19 secs) Cloop 20.80 seconds (User 2.71 secs, Sys 13.50 secs) Squashfs2.0 16.56 seconds (User 2.42 secs, Sys 10.37 secs) Squashfs2.1 10.14 seconds (User 2.48 secs, Sys 4.44 secs)
Sequential I/O performance
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted from CDROM
Zisofs 27 minutes 28.54 seconds (User 3.00 secs, Sys 1 min 4.80 secs) Cloop 5 minutes 55.72 seconds (User 2.90 secs, Sys 3 min 37.90 secs) Squashfs2.0 5 minutes 20.87 seconds (User 2.33 secs, Sys 56.98 secs) Squashfs2.1 5 minutes 15.46 seconds (user 2.28 secs, Sys 51.12 secs)
Random I/O performance
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort -g | awk '{ printf $2 }' > /tmp/sort
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null" on filesystem mounted from CDROM
Zisofs 101 minutes 29.65 seconds (User 5.33 secs, Sys 1 min 17.20 secs) Cloop 35 minutes 27.51 seconds (user 5.93 secs, Sys 4 mins 30.23 secs) Squashfs2.0 21 minutes 53.05 seconds (user 5.71 secs, Sys 2 mins 36.59 secs) Squashfs2.1 21 minutes 46.99 seconds (User 5.80 secs, Sys 2 mins 31.88 secs)
Performance tests from Hard disk
Directory Lookup performance
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem mounted from Hard disk
Ext3 28.89 seconds (User 2.54 secs Sys 1.88 secs) ISO9660 19.33 seconds (user 2.63 secs Sys 10.53 secs) Zisofs 17.29 seconds (User 2.62 secs, Sys 11.08 secs) Cloop 16.46 seconds (User 2.63 secs, Sys 13.41 secs) Squashfs2.0 13.75 seconds (User 2.44 secs, Sys 11.00 secs) Squashfs2.1 6.94 seconds (User 2.44 secs, Sys 4.48 secs)
Sequential I/O performance
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted from Hard disk
Ext3 1 minute 36.80 seconds (User 1.90 secs Sys 13.12 secs) ISO9660 1 minute 41.85 seconds (user 2.58 secs Sys 22.69 secs) Zisofs 1 minute 21.47 seconds (User 2.73 secs, Sys 54.44 secs) Cloop 1 minute 34.06 seconds (user 2.85 secs, Sys 1 min 12.13 secs) Squashfs2.0 1 minute 21.22 seconds (User 2.42 secs, Sys 56.21 secs) Squashfs2.1 1 minute 15.46 seconds (User 2.36 secs, Sys 49.78 secs)
Random I/O performance
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort -g | awk '{ printf $2 }' > /tmp/sort
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null" on filesystem mounted from Hard disk
Ext3 12 minutes 16.86 seconds (User 5.14 secs Sys 22.99 secs) ISO9660 11 minutes 33.82 seconds (User 5.62 secs Sys 32.16 secs) Zisofs 11 minutes 13.64 seconds (User 5.08 secs, Sys 52.62 secs) Cloop 5 minutes 37.93 seconds (user 6 secs, Sys 2 mins 22.38 secs) Squashfs2.0 5 minutes 7.11 seconds (user 5.63 secs, Sys 2 mins 35.23 secs) Squashfs2.1 5 minutes 1.87 seconds (User 5.71 secs, Sys 2 mins 29.98 secs)
Damn Small Linux liveCD performance tests
ext3 uncompressed size 126 MB CRAMFS compressed size 52.19 MB Squashfs2.0 compressed size 46.52 MB Squashfs2.1 compressed size 46.52 MB
Performance tests from CDROM
Directory Lookup performance
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem mounted from CDROM
CRAMFS 10.85 seconds (User 0.39 secs, Sys 0.98 secs) Squashfs2.0 2.97 seconds (User 0.36 secs, Sys 2.15 secs) Squashfs2.1 2.43 seconds (User 0.40 secs, Sys 1.42 secs)
Sequential I/O performance
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted from CDROM
CRAMFS 55.38 seconds (User 0.34 secs, Sys 6.98 secs) Squashfs2.0 35.99 seconds (User 0.30 secs, Sys 6.35 secs) Squashfs2.1 33.83 seconds (User 0.26 secs, Sys 5.56 secs)
Random I/O performance
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort -g | awk '{ printf $2 }' > /tmp/sort
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null" on filesystem mounted from CDROM
CRAMFS 3 minutes 1.68 seconds (User 0.54 secs, Sys 9.51 secs) Squashfs2.0 1 minute 39.45 seconds (User 0.57 secs, Sys 13.14 secs) Squashfs2.1 1 minute 38.41 seconds (User 0.58 secs, Sys 13.08 secs)
Performance tests from Hard disk
Directory Lookup performance
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem mounted from Hard disk
CRAMFS 1.77 seconds (User 0.53 secs, Sys 1.21 secs) Squashfs2.0 2.67 seconds (User 0.41 secs, Sys 2.25 secs) Squashfs2.1 1.87 seconds (User 0.41 secs, Sys 1.46 secs)
Sequential I/O performance
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted from Hard disk
CRAMFS 6.80 seconds (User 0.36 secs, Sys 6.02 secs) Squashfs2.0 7.23 seconds (User 0.29 secs, Sys 6.62 secs) Squashfs2.1 6.53 seconds (User 0.31 secs, Sys 5.82 secs)
Random I/O performance
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort -g | awk '{ printf $2 }' > /tmp/sort
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null" on filesystem mounted from Hard disk
CRAMFS 28.55 seconds (User 0.49 secs, Sys 6.49 secs) Squashfs2.0 25.44 seconds (User 0.58 secs, Sys 13.17 secs) Squashfs2.1 24.72 seconds (User 0.56 secs, Sys 13.15 secs)