[devel] comprehensive rsyncability test
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Июн 1 12:11:50 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 для этих двух групп пакетов.
Далее я прицепил таблицу
файл-2 gzdio-размер lzdio(2)-размер lzma-5-размер
------ ------------ --------------- -------------
$ cut -f2 lzma.txt |sum
2433627
$
Общий размер новых файлов, перепакованных с помощью rsyncable deflate,
прежний -- 2.32G.
$ cut -f3 lzma.txt |sum
1960275
$ cut -f4 lzma.txt |sum
1819361
$
Если те же самые файлы сжать с помощью 'lzma -2' или 'lzma -5',
то получим 1.87G и 1.73G соответственно. Напомню, что при
синхронизации rsync скачал 1.57G. Несколько точнее, разница
между 1.57G и 1.73G в данном случае 172M.
#!/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 "$1/$f1" |./gzdio >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
rpm2cpio "$2/$f2" |./lzdio >cpio2.lz-2
rpm2cpio "$2/$f2" |./lzma -5 >cpio2.lz-5
s3=$(du -b cpio2.lz-2 |awk '{print int($1/1024+0.5)}')
s4=$(du -b cpio2.lz-5 |awk '{print int($1/1024+0.5)}')
echo $f2$'\t'$s2$'\t'$s3$'\t'$s4
done <pkg12
Здесь программа lzdio.c такая же, как gzdio.c, только в ней вместо
"w9.gzdio" написано "w2.lzdio".
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : lzma.txt.gz
Тип : application/x-gzip
Размер : 19681 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20080601/9a4d038c/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/9a4d038c/attachment-0005.bin>
Подробная информация о списке рассылки Devel