gzip vs bzip2 vs xz on Linux: Compression Format Comparison

gzip bzip2 xz linux - custom-compress-featured.png

Every admin hits the gzip vs xz debate when disk is cheap but transfer time is not. gzip is fastest and universal; bzip2 sits in the middle; xz (LZMA2) wins size at CPU cost — common for release tarballs and long-term log archives.

Basics: tar & gzip,
rsync,
split.

gzip — default for logs and pipes

Nearly every distro ships it; gzip/gunzip and .gz in tar czf.

bashgzip
gzip -9 access.log
 tar -czf logs.tar.gz /var/log/nginx/
gzip
.gz

bzip2 — better ratio, more CPU

Smaller than gzip on text; slower. Still seen in legacy .tar.bz2 mirrors.

bashbzip2
bzip2 -k large.sql
 tar -cjf backup.tar.bz2 /data/
bzip2
.bz2

xz — smallest common tar format

Use for off-site archives you rarely decompress; avoid on hot paths.

bashxz
xz -9 -T0 kernel-source.tar
 tar -cJf image.tar.xz release/
xz
.xz

Quick comparison

Speed: gzip > bzip2 > xz. Ratio: often xz > bzip2 > gzip on text. Parallel: pigz, pbzip2, xz -T0.

TipFor live log rotation, keep gzip. For quarterly cold storage, test xz -3 vs gzip -9 on a sample before committing.
pick format
decision

Quick Reference

  • Fast: gzip / tar czf
  • Medium: bzip2 / tar cjf
  • Small: xz / tar cJf

Related tutorials

Diagrams are original illustrations by Gnome IT Solutions. Tutorial text © Gnome IT Solutions.