From: Alexey Tourbin <at@altlinux.ru> To: devel@lists.altlinux.org Subject: [devel] comprehensive rsyncability test Date: Sat, 31 May 2008 22:58:47 +0400 Message-ID: <20080531185847.GZ7996@solemn.turbinal> (raw) [-- 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 --]
next reply other threads:[~2008-05-31 18:58 UTC|newest] Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-05-31 18:58 Alexey Tourbin [this message] 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
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080531185847.GZ7996@solemn.turbinal \ --to=at@altlinux.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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