Вчера в нашем(и не только) городе случился интернетокапец. Интернеты пропали совсем у ТВТ и Дом.ру. Взгрустнулось.
Вспомнил, что на ноуте остался раздел в 13 Gb со старой системой(Дебиан). Там оставались некоторые файлы в домашней директории + кое-какие конфиги. Копировать и ковырять стало лень. Решил сбэкапить этот раздел и пожать в архив стандартными линуховыми утилитами. Позднее при надобности этот файл можно будет подмонтировать и все нужное скопировать.
Стало интересно, сколько же это займет по времени. Так родился маленький бенчмарк.
Итак, конфигурация ноутбука:
CPU: Intel Core2Duo 1.5 GHz
RAM: 2 Gb
HDD: Seagate SATA 250 GB, 5400 об/мин , размер кеша вроде как 2 Mb
Бекапируемый раздел: /dev/sda2, 13 Gb, свободное пространство..... эм.... забыл посмотреть точно. Кажется около 3 Gb

Реальный лог операций:
root@laptop:/media# time cat /dev/sda2 |gzip -c -1 > /media/data/sda2.img.gz real 30m0.188s user 21m59.274s sys 1m24.917s root@laptop:/media# ls -lh /media/data/ |grep img -rw-r--r-- 1 root root 6,7G Дек 1 15:19 sda2.img.gz
root@laptop:/media# time cat /dev/sda2 |gzip -c -9 > /media/data/sda2.img.gz real 93m9.680s user 73m47.129s sys 1m35.106s root@laptop:/media# ls -lh /media/data/ |grep img -rw-r--r-- 1 root root 6,3G Дек 1 17:06 sda2.img.gz
root@laptop:/media# time dd if=/dev/sda2 bs=2M conv=sync,noerror |gzip -c -1 > /media/data/sda2.img.gz 6675+1 записей считано 6676+0 записей написано скопировано 14000586752 байта (14 GB), 1926,57 c, 7,3 MB/c real 32m6.655s user 21m24.808s sys 1m40.582s root@laptop:/media# ls -lh /media/data/ |grep img -rw-r--r-- 1 root root 6,6G Дек 1 17:06 sda2.img.gz
root@laptop:/media# time dd if=/dev/sda2 bs=8M conv=sync,noerror |gzip -c -1 > /media/data/sda2.img.gz 1668+1 записей считано 1669+0 записей написано скопировано 14000586752 байта (14 GB), 2202,07 c, 6,4 MB/c real 36m42.097s user 21m56.318s sys 1m34.634s root@laptop:/media# ls -lh /media/data/ |grep img -rw-r--r-- 1 root root 6,7G Дек 1 18:57 sda2.img.gz
В первом случае использовал перенаправление от cat на gzip с парметром -1, что означает сжимать слабо. Время выполнения 30 минут с копейками.
Во-втором та же история, но уже gzip'у передается параметр -9 , что означает сжимть максимально сильно. Время выполнения 93 минуты с центамим.
Третий случай: использовал прекрасную утилитку dd. Размер разом читаемого блока bs=2M. gzip'у передается параметр -1 чтоб сильно не тужился. Время: 32 минуты.
Четвертый случай, клинический :) все тоже самое, что и в третьем, но bs=8M. Время: 36 минут 42 секунды
Итог:
Как выразились в одном озвестном видеоролике: Это печально.
Мне кажется ужать 13 гиг в .gz за 30 минут при самом слабом пожатии это слишком долго.
Как видно по графику, сжимать с параметром -9 смысла нет. ОЧень долго и размер архива немногим меньше.
При использовании dd заметна регрессия, хотя и не столь большая. Выставление bs больше, чем размер кеша жесткого диска похоже также успеха не сулит.
Вероятно, если bs оставить умолчальным (т.е. вовсе не указывать), то время выполнения будет примерно одинаковым с первым случаем: cat | gzip -1 >
Прошу высказываться. Чего упустил, где накосячил и прочее :)




Респект за статью! Раздел,
Раздел, случаем не boot? Если нет - есть ли смысл делать посекторное копирование? Может проще всё через копи в архив загнать?
Да, в моем случае наверное
Да, в моем случае наверное проще просто в архив. Но с другой стороны было интересно потестить.
Просто бывают случаи, что нужно сделать дамп диска для последующего восстановления. Вот тут оно и может помочь
Пользуюсь Ghost помойму
Пользуюсь Ghost помойму быстрей него не одно ПО не делает
В такие моменты (аварии и
В такие моменты (аварии и т.п.) действительно вспоминаешь о резервном копировании. В этом смысле мне всегда были симпатичны "разностные" технологии, когда первый раз записывается всё, а в последующие дни - только измененные файлы, причем ничего кроме tar, gzip и cron для этого не нужно. Что-то типа
где $FILENAME - имя нового архива, $LAST - дата последнего архива. В этом случае 30 минут не понадобятся и восстановить файлы можно по состоянию на любую дату.
Можно, кстати, на Core2Duo
Можно, кстати, на Core2Duo использовать многопоточные архиваторы, которые используют сразу несколько процессоров (ядер). Время сжатия значительно уменьшится. Я недавно озадачивался этим вопросом у себя в блоге.
я недавно проводил подобный
я недавно проводил подобный тест: http://freearc.org/HFCB.aspx
могу посоветовать pigz, который представляет из себя многопоточную версию gzip. или мою собственную утилиту 4x4, но вряд ли ты захочешь пускать что-то непрверенное :D
Отправить комментарий