Назад | Перейти на главную страницу

Почему rsync разветвляется? И почему один такой разветвленный процесс почти простаивает (как видно в iotop)?

Имеется в виду дело указано здесь и я тоже испытываю то же самое.

На одном из моих серверов я запустил rsync для резервного копирования огромного каталога (размером более 300 ГБ) на другой диск, смонтированный на той же машине. Синхронизируемый каталог содержит тысячи каталогов и файлов. Я ввел одну команду rsync с «nohup», а затем поместил ее в фоновом режиме с помощью команды «&». Полная команда, данная в удаленной оболочке bash (с использованием шпатлевки), была следующей:

nohup rsync -avh /some/local/dir /backup/ >> /opt/rsync.dec22.log &

Затем, чтобы проверить, с какой скоростью копируются данные, я использовал команду «iotop» и обнаружил, что было 3 rsync, работающих с одинаковыми параметрами. При поиске я нашел ссылку выше, в которой говорится, что это нормально.

Но выполняя iotop для мониторинга только тех и единственных процессов rsync, запущенных в системе, я вижу, что один процесс читает файлы, другой записывает их, но один простаивает. Поведение кажется хорошим, так как один процесс выполняет только одно действие за раз, но что делает третий процесс (на изображении ниже он показан в середине)?

Я использовал команду iotop:

iotop -p22250 -p22251 -p22252

Вот скриншот для вывода команды iotop:

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

rsync - это программа, разработанная как клиент и сервер. Сервер читает, а клиент пишет. Представьте себе, что вместо одного компьютера у вас есть компьютеры в сети, я уверен, что это намного понятнее, если вы так думаете.

Тогда есть контроллер. Поскольку операции ввода-вывода, как правило, сопряжены с определенным риском, проблема ввода-вывода не должна вызывать полную блокировку или сбой. Таким образом, он создает вилку для каждого соединения и находится в фоновом режиме.