This third version changes the API again to allow you to select both
the compression program (from {compress,gzip,bzip2,xz,lzop}) and
optionally the compression level.
Some more timings are below. 'lzop' is generally much faster than
other methods, although there is still > 50% penalty for using lzop on
a fairly full filesystem.
Interestingly, 'lzop -1' which is supposed to be fast, is slower than
the default level.
Rich.
100 MB empty filesystem.
Straight download was 0.65 seconds.
$ ./run ./fish/guestfish -N fs \
time compress-device-out gzip /dev/vda1 >(wc -c) level:1
elapsed time: 0.92 seconds
462390
$ ./run ./fish/guestfish -N fs \
time compress-device-out gzip /dev/vda1 >(wc -c) level:9
elapsed time: 1.14 seconds
107903
$ ./run ./fish/guestfish -N fs \
time compress-device-out lzop /dev/vda1 >(wc -c)
elapsed time: 0.73 seconds
428023
$ ./run ./fish/guestfish -N fs \
time compress-device-out lzop /dev/vda1 >(wc -c) level:1
elapsed time: 0.84 seconds
428125
$ ./run ./fish/guestfish -N fs \
time compress-device-out bzip2 /dev/vda1 >(wc -c)
elapsed time: 1.80 seconds
2801
$ ./run ./fish/guestfish -N fs \
time compress-device-out xz /dev/vda1 >(wc -c)
elapsed time: 9.17 seconds
18164
Real filesystem image ~5.5GB in size, 59% in use.
Straight download was 78.74 seconds.
$ ./run ./fish/guestfish --ro -a /dev/vg_pin/F16x64 \
run : time compress-device-out lzop /dev/vg_f16x64/lv_root >(wc -c)
elapsed time: 123.17 seconds
2488500746
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages.
http://libguestfs.org