у меня есть sshfs
настройка для подключения к другой системе (Rackspace Cloud Sites), которой у меня нет ssh
доступ к (но почему я могу использовать sshfs? Я пытаюсь rsync
файлы из sshfs
смонтировать на мой локальный диск. Это несколько тысяч небольших файлов (от 1к до 200к). Иногда rsync просто приостанавливается и на некоторое время зависает для очень маленьких файлов. Он остановится, скажем, на текстовом файле размером 10 КБ примерно на 5 минут, затем он продолжится.
Можно ли где-нибудь посмотреть на своей машине, чтобы определить, почему rsync так зависает? Или есть большая вероятность, что это просто проблема на другом конце провода, с которой я ничего не могу поделать?
Мои параметры rsync просто -avrP
.
Хорошо, я собираюсь нанести удар, потому что я думаю, что моя идея имеет смысл.
В этом случае вы имеете дело с несколькими кешами, и я думаю, это вас сбивает с толку.
Первое, что делает rsync, - определяет, какие файлы необходимо передать. Обычно это делается путем создания экземпляра rsync на удаленной стороне, чтения метаданных для каждого из файлов в каталоге на источнике, в то же время чтения метаданных для локальных файлов, а затем сравниваются два набора метаданных. . Все, что новее (или другое, в зависимости от параметров rsync), передается.
Согласно rsync, у вас нет «удаленной стороны». Вы работаете «локально», поэтому он будет перебирать оба каталога, источник и место назначения.
Это очень интенсивно работает с диском, особенно с тоннами небольших файлов - чем больше файлов, тем больше дискретных операций с диском. Это вызывает частую перегрузку диска, а также заполняет кеш метаданными из этих файлов.
Обратите внимание, что это происходит на всем протяжении стека. Ваш локальный компьютер кэширует метаданные из файловой системы FUSE, которую вы смонтировали через ssh И локальный каталог. Удаленная машина кэширует метаданные с локального диска. И хост виртуальной машины, на котором работает ваша удаленная машина, почти наверняка перегружен и дает вам раздуваемую память.
Я подозреваю, что очень вероятно, что вы переступите порог, когда он зависнет, и все должно наверстать упущенное и либо декашироваться, либо поменяться местами.
Мне было бы очень интересно посмотреть, произойдет ли это, когда вы выполните rsync через ssh без монтирования диска.