Итак, есть 16 Гб крупным бинарным файлом.
Пробуем перелить его силами rsync без флага -z:
Почеум так? Сжатие силами протокола gzip довольно требовательно к процессору и очень быстро упирается в производительность одного ядра, которая даже на топовых процессорах очень слабая.
Сжатие, безусловно, даст ускорение передачи данных, но лишь в случае, когда процессор будет успевать сжимать данные быстрее, чем выдерживает канал связи, этого можно достичь, например, используя внешнее сжатие через парраллельный компрессор pigz.
Пробуем перелить его силами rsync без флага -z:
time rsync -a --progress /vz/private/1210 root@technode4.fv.ee:/tmp/1210
Потребление процессора разумное (32%):
395053 root 20 0 106m 1500 988 R 32.3 0.0 0:06.84 rsync
Итоги:
sent 16906158370 bytes received 96 bytes 103 401 580.83 bytes/sec
total size is 16904094532 speedup is 1.00
real 2m42.437s
user 1m23.115s
sys 0m38.441s
Пробуем перелить с флагом -z:
time rsync -az --progress /vz/private/1210 root@technode4.fv.ee:/tmp/1210
Сразу в процессе видно, что скорость падает с 100 мегабайт/секунду до 20, а rsync начинает висеть вот в таком мерзком виде в top (да, да, он целиком выедает ядро процессора):
391791 root 20 0 106m 1812 1020 R 99.7 0.0 0:54.36 rsync
В итоге пришлось прервать процесс, так как он не завершился бы в разумные сроки - половина скопировалось лишь за 5 минут и скорость упала до 5 мегабайт/секунду:
real 5m54.894sВ итоге данные в лучшем случае перелились бы за 10-20 минут, что уже в 4-5 раз хуже, чем вариант без использования сжатия.
user 4m24.249s
sys 0m20.234s
Почеум так? Сжатие силами протокола gzip довольно требовательно к процессору и очень быстро упирается в производительность одного ядра, которая даже на топовых процессорах очень слабая.
Сжатие, безусловно, даст ускорение передачи данных, но лишь в случае, когда процессор будет успевать сжимать данные быстрее, чем выдерживает канал связи, этого можно достичь, например, используя внешнее сжатие через парраллельный компрессор pigz.
Скажу даже больше. Сжатие помогает только тогда, когда канал узкий как анус бухгалтера при сдаче отчетности, больше от него профита нет.
ReplyDeleteНу если использовать pigz - скорость увеличится очень серьезно. Вопрос скорее в том, что однопточное сжатие - ужасно медленное.
Delete