параллельное копирование файлов с использованием tee неожиданно медленное

параллельное копирование файлов с использованием tee неожиданно медленное

мы копируем большой снимок zfs (zfs send) с site-1 на site-2. site-1 и site-2 являются удаленными и подключены через IPsec (читай: медленно)

на сайте 2 нам нужны данные на двух разных серверах zfs. в настоящее время мы используем две одновременные команды ssh "zfs send" | zfs receive. это, конечно, пустая трата полосы пропускания.

мы экспериментировали со следующим (1 удаленный ssh, tee, 1 локальный ssh):

[root@site-2-1 ~]# \
    time \
    ssh root@site-1-0 \
        "cat /tmp/100000000.rnd | pigz -1" \
    | pv -B 10m -s 100000000 \
    | tee \
        >(ssh root@site-2-2 "pigz -d > /tmp/test.rnd.1") \
    | pigz -d \
    > /tmp/test.rnd.1

95.4MiB 0:00:52 [1.83MiB/s] [===<snipped>===>] 100%

real    0m52.062s
user    0m0.979s
sys 0m1.100s

что оказалось медленнее, чем симуляция исходного решения (2 удаленных ssh одновременно):

[root@site-2-1 ~]# \
    time \
    ssh root@site-1-0 \
        "cat /tmp/100000000.rnd | pigz -1" \
    | pv -B 10m -s 100000000 \
    | pigz -d \
    > /tmp/test.rnd.2
95.4MiB 0:00:30 [3.09MiB/s] [===<snipped>===>] 100%

real    0m30.837s
user    0m0.827s
sys 0m1.003s


[root@site-2-2 ~]# \
    time \
    ssh root@site-1-0 \
        "cat /tmp/100000000.rnd | pigz -1" \
    | pv -B 10m -s 100000000 \
    | pigz -d \
    > /tmp/test.rnd.2
95.4MiB 0:00:38 [ 2.5MiB/s] [===<snipped>===>] 100%

real    0m38.187s
user    0m0.840s
sys 0m0.846s

мы изучили код Ти, нашего главного подозреваемого, и, похоже, он работает в одном потоке.

может ли кто-нибудь порекомендовать более быструю альтернативу tee или, может быть, совершенно иное решение?

Спасибо заранее, Гювен

решение1

предположение:

zfs send > file
scp file server-at-site2:
ssh server-at-site2 zfs receive < file
ssh server-at-site2 cat file | ssh second-server-at-site2 zfs receive

Для этого требуется две передачи, но, вероятно, вторая будет быстрее (из-за локальной сети и т. д.)

Связанный контент