• D
    qemu: make 'xz' image compression viable by using -3 · 8aaed287
    Daniel P. Berrangé 提交于
    For managed save we can choose between various compression
    methods. I randomly tested the 'xz' program on a 8 GB guest
    and was surprised to have to wait > 50 minutes for it to
    finish compressing, with 'xz' burning 100% cpu for the
    entire time. Despite the impressive compression, this is
    completely useless in the real world as it is far too long
    to wait to save the VM.
    
    The 'xz' binary defaults to '-6' optimization level which
    aims for high compression, with moderate memory usage,
    at the expense of speed.
    
    This change switches it to use the '-3' optimization level
    which is documented as being the one that optimizes speed
    at expense of compression. Even with this, it will still
    outperform all the other options in terms of compression
    level. It is a little less than x4 faster than '-6' which
    means it starts to be a viable choice to use 'xz' for
    people who really want best compression.
    
    The test results on a 1 GB, fairly freshly booted VM are
    as follows
    
      format | save  | restore  size
      =======+=======+=============
      raw    |   05s |    1s  | 428 MB
      lzop   |   05s |    3s  | 160 MB
      gzip   |   29s |    5s  | 118 MB
      bz2    |   54s |   22s  | 114 MB
      xz     | 4m37s |   13s  |  86 MB
      xz -3  | 1m20s |   12s  |  95 MB
    
    Based on this we can say
    
     * For moderate compression with no noticable loss in speed
    
           => use lzop
    
     * For high compression with moderate loss in speed
    
           => use gzip
    
     * For best compression with significant loss in speed
    
           => use xz
    Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
    Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
    8aaed287
qemu_driver.c 729.4 KB