вторник, 17 мая 2011 г.

Исследование архиваторов на потоках

Возникла идея по уменьшению времени копирования сырого RAW-устройства с данными Oracle с одного хоста на другой в случае ограниченного канала. Были рассмотрены доступные архиваторы стандартной поставки в Solaris 10. Для передачи данных использовалась программа mbuffer.
Железо
Передача производилась намеренно по 100 мегабитной сети.
Источник - T5240, sparc, 128 ядер
Приемник - Sun Fire X4170, x86, 6 ядер

Командная строка (примерно)
на источнике:
dd if=/dev/vx/rdsk/testgrp/TESTVOL bs=512k|/usr/local/bin/7za a dummy -an -txz -bd -mmt=128 -mx=3 -slp -si -so|/usr/local/bin/mbuffer -s 128k -m 10M -O 10.99.88.77:9090
на приемнике:
/usr/local/bin/mbuffer -s 128k -m 100M -I 9090| /usr/local/bin/7za e -txz -si

Без сжатия
summary: 2048 MiByte in  3 min 04.1 sec - average of 11.1 MiB/s

gzip
summary:  709 MiByte in 21 min 52.2 sec - average of  553 KiB/s - bs не указан
summary:  709 MiByte in  6 min 12.0 sec - average of 1952 KiB/s - bs=128k
summary:  709 MiByte in  6 min 09.2 sec - average of 1967 KiB/s - bs=1024k


bzip2 прервал - ОЧЕНЬ медленно, даже на минимальном сжатии. Прервал, не стал замерять.

7z, xz-method. Собран последний из исходников, т.к. в дистрибутиве старый и не умеет LZMA2.
summary:  414 MiByte in  1 min 13.9 sec - average of 5738 KiB/s  - -mmt=64 -mx=1
summary:  414 MiByte in  1 min 26.1 sec - average of 4923 KiB/s  - -mmt=128 -mx=1
summary:  414 MiByte in  1 min 15.3 sec - average of 5626 KiB/s - -slp
summary:  380 MiByte in  1 min 26.8 sec - average of 4480 KiB/s - -mmt=128 -mx=3 -slp

На mx=3 скорость сжатия+передачи незначительно превысила скорость распаковки на приемнике.
На источнике по всей видимости уперлись в скорость сжатия (процессорные мощности???), хотя mpstat не показал даже 50% загрузки по всем ядрам. Этот момент не понятен.
Как видим на гигабите сжатие будет не интересно в плане времени передачи.
В то же время процент сжатия RAW-потока весьма впечатляет на последнем алгоритме (это LZMA2)

Комментариев нет:

Отправить комментарий