Squash Fs Comparisons

Table Of 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

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)

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

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)

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)