ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] comprehensive rsyncability test
@ 2008-05-31 18:58 Alexey Tourbin
  2008-05-31 19:44 ` Dmitry V. Levin
                   ` (2 more replies)
  0 siblings, 3 replies; 93+ messages in thread
From: Alexey Tourbin @ 2008-05-31 18:58 UTC (permalink / raw)
  To: devel


[-- Attachment #1.1: Type: text/plain, Size: 3566 bytes --]

Предварительное тестирование 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, который диагностирует степень "совпадения" двух
перепакованных архивов.

Полный результат приведён в таблице, которую я прицепил к письму.
Таблица подразумевает следующий заголовок.

файл-1   размер-1   файл-2   размер-2   послано   скочено   speedup
------   --------   ------   --------   -------   -------   -------

Последние три поля из диагностики rsync.  Размеры округляются
до килобайтов.

$ wc -l <rsyncability.txt
1360
$

Всего мы рассматриваем 1360 штук x86_64 пакетов, которые обновились
с 1 марта по 1 апреля 2008 года.

$ awk '$NF>2' rsyncability.txt |wc -l
211
$

Из них достаточно большим значением speedup (синхронизация вдвое
быстрее, чем простое скачивание) обладают 211 пакетов.

$ sum() { perl -MList::Util=sum -ln0 -e 'print sum split'; }
$ cut -f4 rsyncability.txt |sum
2433627
$

Общий размер новых пакетов 2.32G.

$ cut -f6 rsyncability.txt |sum
1643033
$

При этом rsync скачал 1.57G.

$ cut -f5 rsyncability.txt |sum    
14017
$

Нужно также понимать, что rsync не только что-то скачал,
но и послал 13.7M (оверхед протокола при поиске совпадающих кусков;
опция --block-size здесь влияет).

ТАКИМ ОБРАЗОМ, я считаю, что эта ситуация в какой-то степени отражает
"реальное положение вещей".  А именно, если бы мы просто скачивали
"новые файлы за март", то мы скачали бы 2.32G.  Если же мы
синхронизировали "новые файлы за март" со "старыми домартовскими
файлами", то мы скачали бы где-то 1.6G (напоминаю, что совсем маленькие
пакеты исключены из рассмотрения).  Этот расчёт сделан в предположении,
что как старые предмартовские файлы, так и новые файлы за март УЖЕ
запакованы при помощи rsyncable gzdio.

Вот код скрита (gzdio.c и rsync-shell были в одном из предыдущих писем,
packages из пакета qa-robot).

test-dirs:
#!/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
	rsync --block-size 1024 -v -e ./rsync-shell foo:cpio2.gz cpio1.gz >out
	sent=$(awk '$1=="sent"{print int($2/1024+.5)}' out)
	received=$(awk '$4=="received"{print int($5/1024+.5)}' out)
	speedup=$(awk '$5=="speedup"{print$7}' out)
	echo $f1$'\t'$s1$'\t'$f2$'\t'$s2$'\t'$sent$'\t'$received$'\t'$speedup
done <pkg12

[-- Attachment #1.2: rsyncability.txt.bz2 --]
[-- Type: application/x-bzip2, Size: 25050 bytes --]

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 93+ messages in thread

end of thread, other threads:[~2008-06-05  9:08 UTC | newest]

Thread overview: 93+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-31 18:58 [devel] comprehensive rsyncability test Alexey Tourbin
2008-05-31 19:44 ` Dmitry V. Levin
2008-05-31 21:32   ` Alexey Tourbin
2008-05-31 21:57     ` Dmitry V. Levin
2008-05-31 22:14       ` Alexey Tourbin
2008-05-31 22:26         ` Dmitry V. Levin
2008-05-31 23:10           ` Alexey Tourbin
2008-06-01  8:11   ` Alexey Tourbin
2008-06-01 17:35     ` Michael Shigorin
2008-06-01 17:43       ` Mikhail Gusarov
2008-06-01 18:04         ` Michael Shigorin
2008-06-01 18:39         ` Alexey I. Froloff
2008-06-01 17:44       ` Alexander Bokovoy
2008-06-01 18:22         ` Alexey Tourbin
2008-06-01 18:32           ` Led
2008-06-01 19:04             ` Alexey Tourbin
2008-06-01 10:18 ` Alexey Tourbin
2008-06-01 12:18   ` Anton Farygin
2008-06-01 13:23     ` Mikhail Gusarov
2008-06-01 12:26       ` Anton Farygin
2008-06-01 13:48         ` Alexander Bokovoy
2008-06-01 21:17           ` [devel] rsync server load Alexey Tourbin
2008-06-01 21:52             ` Konstantin A. Lepikhov
2008-06-02 14:08             ` Dmitry V. Levin
2008-06-02 14:25               ` Konstantin A. Lepikhov
2008-06-02 14:29                 ` Dmitry V. Levin
2008-06-02 18:04                   ` Konstantin A. Lepikhov
2008-06-02 20:21                     ` [devel] [jt] " Dmitry V. Levin
2008-06-02 20:28                       ` Alexey Gladkov
2008-06-02 20:35                         ` Dmitry V. Levin
2008-06-02 20:41                           ` Alexey Gladkov
2008-06-02 20:58                           ` Sergey Y. Afonin
2008-06-03  6:30                         ` Dmitriy M. Maslennikov
2008-06-02 20:53                       ` Sergey Y. Afonin
2008-06-02 21:33                       ` Konstantin A. Lepikhov
2008-06-02 21:42                         ` Dmitry V. Levin
2008-06-02 22:25                           ` Konstantin A. Lepikhov
2008-06-02 22:50                             ` [devel] [jt] clustered fs Dmitry V. Levin
2008-06-02 22:54                               ` Konstantin A. Lepikhov
2008-06-02 23:08                                 ` Dmitry V. Levin
2008-06-03  5:38                                   ` Anton Farygin
2008-06-03  7:19                                   ` Serge Ryabchun
2008-06-03  8:53                                   ` Michael Shigorin
2008-06-03 10:27                                     ` [devel] " Dmitry V. Levin
2008-06-03 15:02                                       ` Michael Shigorin
2008-06-03 15:18                                         ` [devel] lustre Dmitry V. Levin
2008-06-03 20:21                                           ` Michael Shigorin
2008-06-03 21:27                                             ` Dmitry V. Levin
2008-06-04 12:15                                               ` Serge Ryabchun
2008-06-04 12:20                                                 ` Michael Shigorin
2008-06-04 12:47                                                   ` Anton Farygin
2008-06-04 14:17                                                     ` Andrey Brindeyev
2008-06-04 14:17                                                       ` Andrey Brindeyev
2008-06-04 14:46                                                       ` Anton Farygin
2008-06-04 15:12                                                         ` Serge Ryabchun
2008-06-04 15:22                                                         ` Andrey Brindeyev
2008-06-04 18:49                                                           ` Anton Farygin
2008-06-04 15:10                                                       ` Alexander Bokovoy
2008-06-05  9:04                                                         ` Sergey Zhumatiy
2008-06-05  9:08                                                           ` Alexander Bokovoy
2008-06-03 10:50                                     ` [devel] [jt] clustered fs Mykola S. Grechukh
2008-06-03  8:51                           ` [devel] [jt] rsync server load Michael Shigorin
2008-06-01 13:49         ` [devel] comprehensive rsyncability test Alexander Bokovoy
2008-06-01 12:55           ` Anton Farygin
2008-06-01 15:35           ` Alexey Tourbin
2008-06-01 16:38             ` Alexander Bokovoy
2008-06-01 16:42               ` Mikhail Gusarov
2008-06-01 16:55                 ` Alexander Bokovoy
2008-06-01 17:03                   ` Mikhail Gusarov
2008-06-01 17:41   ` Michael Shigorin
2008-06-01 17:47     ` Mikhail Gusarov
2008-06-01 18:07       ` [devel] [JT] насчёт НП-18 Michael Shigorin
2008-06-01 18:11         ` Mikhail Gusarov
2008-06-02  3:48           ` Anton Farygin
2008-06-02  4:50             ` Alexander Bokovoy
2008-06-02  9:45               ` Sergey Bolshakov
2008-06-02  9:52               ` Anton Farygin
2008-06-02  9:57                 ` Aleksey Novodvorsky
2008-06-02 10:18                   ` Mikhail Gusarov
2008-06-02 10:43                   ` Anton Farygin
2008-06-02 20:24   ` [devel] comprehensive rsyncability test Dmitry V. Levin
2008-06-02 20:31     ` Led
2008-06-04 12:33     ` Alexey Tourbin
2008-06-04 12:49       ` Anton Farygin
2008-06-04 13:04         ` Alexey Tourbin
2008-06-04 17:37           ` Michael Shigorin
2008-06-04 18:24             ` Alexey Tourbin
2008-06-04 18:54               ` Michael Shigorin
2008-06-05  7:36             ` Anton V. Boyarshinov
2008-06-04 18:49           ` Dmitry V. Levin
2008-06-02 10:06 ` Alexey Tourbin
2008-06-02 10:38   ` Alexander Bokovoy
2008-06-02 10:46     ` Anton Farygin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git