Чем жать бэкапы

Nov 27, 2014 11:48


Цель эксперимента: выбрать наилучший алгоритм сжатия файлов на хостинге. Специфика заключается в том что в папках хранится определенная доля похожих (содержащих одинаковые фрагменты или полностью идентичных) файлов (многие сайты используют одни и те-же движки, библиотеки, наборы графических файлов и т.п.). Можно ли сэкономить место на дисках, выбрав алгоритм сжатия, учитывающий "повторы" одинаковых блоков в разных файлах?

Сеттинг: создана папка, содержащая 4 папки с разным содержимым:
  1. два графических файла в формате jpg и png (J и P)
  2. архив tar содержащий те же файлы
  3. архив tar содержащий те же файлы + текстовый файл
  4. файлы J и P в разных подпапках.

Процедура:

Сжимаем папку с помощью разных алгоритмов сжатия. Результаты приведены в таблице:

Алгоритм сжатия
Итоговый размер (КБ)
Разница (%)

без сжатия
1200
0

1.7z
276
-77

1.ar
884
-26

1.cbz
1100
-8

1.jar
1100
-8

1.rar
1100
-8

1.tar.7z
280
-77

1.tar.bz2
672
-44

1.tar.gz
1100
-8

1.tar.lz
280
-77

1.tar.xz
280
-77

1.tar.Z
1500
25

1.zip
1100
-8

Как видим - такие часто используемые алгоритмы как gz (tar.gz), rar, zip показывают низкую эффективность (8% сжатия). bz2 ведет себя чуть лучше (44%), однако лидерами являются xz,lz,7z (77% сжатия).

Испытания на наших серверах на протяжении последнего года показали, что переход с tar.gz на tar.xz дает 15-20% экономии места. Для точки восстановления в 15Гб это примерно +3Гб свободного места. Впрочем, есть и trade off - загрузка ЦП при архивации увеличивается (примерно на те-же 20%).

админское

Previous post Next post
Up