rsync очень медленный (фактор 8-10) по сравнению с cp при копировании файлов из nfs-share в локальный каталог

У меня есть недавно установленный Ubuntu-сервер, который должен быть новым резервным сервером для нашего VM-хранилища. На сервере есть 4 компьютера, из которых 2 из 10Gbit (на самом деле это intel x540-T2 с самым новым драйвером), которые используются для подключения к SAN. У меня есть nfs-share, смонтированный локально и сравниваемый с разницей скорости при копировании каталога с ~ 30 файлами, около 15 vm-изображений и соответствующих файлов журналов. Изображения от 8 до 600 ГБ.

С помощью:

cp -rf /mnt/nfs-share /backup-storage/ 

bmon показывает, следовательно, около 600 Мбайт / с.

С помощью

 rsync -av /mnt/nfs-share /backup-storage/ 

bmon показывает некоторые пакеты в первые секунды, останавливается в течение примерно 30 секунд и составляет примерно 60-75 Мбайт / с. Процессор составляет около 60%.

Что мне следует изменить, чтобы использовать rsync с той же производительностью, что и cp ?

2 Solutions collect form web for “rsync очень медленный (фактор 8-10) по сравнению с cp при копировании файлов из nfs-share в локальный каталог”

Я думаю, что эти различия довольно хорошо установлены между cp и rsync . См. Эту статью в качестве ссылки, озаглавленной: Посмотрите на производительность rsync .

выдержка:

 The four commands tested were: rsync $SRC $DEST echo $SRC | cpio -p $DEST cp $SRC $DEST cat $SRC > $DEST/$SRC The results for rsync, cpio, cp, and cat were: user sys elapsed hog MiB/s test 5.24 77.92 101.86 81% 100.53 cpio 0.85 53.77 101.12 54% 101.27 cp 1.73 59.47 100.84 60% 101.55 cat 139.69 93.50 280.40 83% 36.52 rsync 

Я использую rsync ежедневно. Есть вещи, которые вы можете сделать, чтобы улучшить ситуацию.

Например, вы можете попробовать использовать переключатель -W :

 -W, --whole-file copy files whole (w/o delta-xfer algorithm) 

Также я бы посоветовал убедиться, что у вас есть версии rsync 3.x. Были заметные улучшения, когда мы перешли к более новым версиям.

Способ сделать rsync имеет такую ​​же производительность, что и cp, чтобы записать его «cp».

Разница между двумя командами значительна, хотя чистый эффект может быть одинаковым. В частности, rsync выполняет кучу чтения, чтобы узнать, нужно ли копировать какой-либо файл или часть файла.

Есть ли какая-то причина, по которой вы хотите использовать rsync? Поскольку cp копирует «слепо», вы увидите более высокую производительность. Если для набора условий запуска используется механизм дельта-передачи rsync, вы увидите снижение скорости передачи и использование ЦП в значительной степени, как вы сообщаете.

  • Rsyslog использовать имя хоста вместо крайней FQDN метки
  • Установка Debian на USB
  • Отправка файла в открытый редактор с помощью командной строки
  • Предотвратите отключение питания жесткого диска USB после неактивности
  • start-stop-daemon работает не так, как ожидалось, файл pid не был написан
  • Как передать хеш md5 в оболочку
  • Регистрируется ли Linux при запуске процесса и назначается ему PID? Где я могу найти этот журнал?
  • gnome-terminal bengali unicode chars нарушает, не демонстрируя отлично
  • курсор xterm не инвертируется правильно с выделенным / обратным текстом
  • Свяжите зависимость в Synaptic с уже установленной из источника
  • Ошибка аутентификации MongoDB?
  • Interesting Posts

    Как сохранить только последние n строк файла журнала?

    Устройство Raid5 имеет меньше пространства, чем ожидалось

    Как накладывать окно на панель

    удалите пробел перед разделителем с помощью sed

    Установите Arch Linux без переопределения MBR

    Могут ли процессы с интенсивным использованием процессора с наименьшим приоритетом (19) оказывать неблагоприятное воздействие?

    Какой исполняемый файл вызывается, если он вызван в сценарий через относительный путь?

    Несколько источников IP на одном интерфейсе в Linux

    Когда происходит сбой chmod?

    Fedora 18 обнаруживает несуществующий монитор

    Как включить скрипт python внутри сценария bash

    Почему Samba настаивает на регистрации в качестве гостевого пользователя?

    Почему мой промежуток между буквами уменьшается при отключении дисплея и входа в / dev / tty?

    Ошибка компиляции 64-разрядной 32-разрядной машины с -m64

    Как узнать, заполнен ли буфер буфера?

    Linux и Unix - лучшая ОС в мире.