[devel] comprehensive rsyncability test
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Июн 1 01:32:39 MSD 2008
On Sat, May 31, 2008 at 11:44:52PM +0400, Dmitry V. Levin wrote:
> On Sat, May 31, 2008 at 10:58:47PM +0400, Alexey Tourbin wrote:
> > Предварительное тестирование rsyncable gzdio показало, что эффект
> > от rsyncable deflate есть, и лучше всего он проявляется при
> > незначительном изменении пакетов; кроме того, пакет должен содержать
> > достаточно большие файлы (если пакет целиком состоит из маленьких
> > файлов, то rsyncability резко падает).
> >
> > Но одиночные тесты не выявляют "реального положения вещей"; требуется
> > более широкое тестирование с привлечением "реальных данных" за некоторый
> > промежуток времени.
> >
> > Предлагаю протестировать rsyncability двух каталогов:
> > /ALT/archive/Sisyphus/2008/03/01/files/x86_64/RPMS
> > /ALT/archive/Sisyphus/2008/04/01/files/x86_64/RPMS
> >
> > Методика тестирования следующая:
> > 1) Из каталогов парами выбираются файлы, у которых совпадает
> > имя пакета %{NAME}, но при этом не совпадает имя файла
> > %name-%version-%release.x86_64.rpm.
> > 2) Для каждой пары пакетов извлекается cpio архив и перепаковывается
> > с помощью rsyncable gzdio из нового rpmio.
> > 3) Отсекаются маленькие пакеты: оба перепакованных архива должны быть
> > больше 32K.
> > 4) Запускается rsync, который диагностирует степень "совпадения" двух
> > перепакованных архивов.
>
> Тогда, наверное, надо сравнить ещё и размер rsyncable deflate, нынешний
> не-rsyncable deflate и lzma для этих двух групп пакетов.
Что касается rsyncable deflate vs common deflate, то ответ простой:
коэффициент сжатия в среднем не изменяется.
Я прицепил таблицу deflate.txt:
файл-2 gzip-9-размер rsyncable-gzdio-размер
------ ------------- ----------------------
$ cut -f2 deflate.txt |sum
2434968
$ cut -f3 deflate.txt |sum
2437193
$ perl -le 'print 2437193/2434968*100'
100.091376970868
$
Разница в сжатии менее одной десятой процента, что при 1360 файлах
можно в значительной степени списать на статистическую погрешность.
Сжатие дело тонкое!
#!/bin/sh -efu
packages "$1" >pkg1
packages "$2" >pkg2
join -t$'\t' -j 1 -o '0 1.3 2.3' pkg1 pkg2 |awk -F'\t' '$2!=$3' >pkg12
while read -r pkg f1 f2; do
rpm2cpio "$2/$f2" |gzip -9 >cpio1.gz
rpm2cpio "$2/$f2" |./gzdio >cpio2.gz
s1=$(du -b cpio1.gz |awk '{print int($1/1024+0.5)}')
s2=$(du -b cpio2.gz |awk '{print int($1/1024+0.5)}')
[ "$s1" -gt 32 ] && [ "$s2" -gt 32 ] || continue
echo $f2$'\t'$s1$'\t'$s2
done <pkg12
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : deflate.txt.gz
Тип : application/x-gzip
Размер : 17087 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20080601/cb8b37e7/attachment-0004.bin>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20080601/cb8b37e7/attachment-0005.bin>
Подробная информация о списке рассылки Devel