Почему rsync гораздо медленней, чем инсталятор системы?

Я засекал время установки дистрибутива Calculate Linux на моем компьютере. Установка занимала 15 минут. После установки мной было проведено полное копирование свежеустановленой системы на другой раздел жесткого диска с помощью rsync. Причем хочу подчеркнуть, система стояла на отдельном разделе, на котором были ТОЛЬКО системные файлы. Музыка, фильмы и т.д. стоят у меня на отдельном разделе (и да, он никак не связан с home). Потом я полностью стер систему, дабы попробовать восстановить её с помощью rsync. Самое интересное заключается в том, что восстановление заняло ДВА ЧАСА. Подчеркиваю, это фактически было простое копирование файлов. Я лично не могу найти разумное объяснение такой большой разнице. Может быть у кого-то есть идеи?

Почему НИКТО не отвечает?

Почему НИКТО не отвечает?

варианты:
# никто не знает
# эта информация лишь косвенно касается calculate linux-а, и подобный метод вряд-ли где-то в документации описан.
# никто не знает, но все надеются, что вы сами ответите на свой вопрос. Тем самым просветите нас всех.
# никто ничем никому не обязан в OpenSource сообществе.
Зато если бы вы сами почитали бы про принцип работы rsync(с подсчетом контрольных сумм фрагментов, и т.п.), то без труда ответили бы на свой вопрос. А гуглить за вас никто не захотел.

…После установки мной было проведено полное копирование свежеустановленой системы на другой раздел жесткого диска с помощью rsync… Самое интересное заключается в том, что восстановление заняло ДВА ЧАСА… Может быть у кого-то есть идеи?

  • особенности протокола rsync
  • что за разделы(фс)?
  • что за диск(скоростной)?
  • как далеко расположены партиции(голова на диске должна гулять туда/сюда, а из squash-а копировать гораздо легче)?
  • сколько RAM-а свободно(соответственно сколько кэша)?
  • какой NICE был у rsync-а?
  • куча других вариантов(вроде умирающего жесткого сыплющего бэдами).

1.Ну да, не обязан. Но подумайте, что будет с этим самым сообществом, если никто никому не будет помогать, хотя бы понемногу, в меру своих сил и возможностей? Это будет, фактически, смерть OpenSource как концепции. В конечном итоге, это выгодно самому сообществу. Разве было так трудно дать ответ хотя бы в духе “RTFM” ?

2,Разве на этом форуме нельзя обсуждать смежные темы? Будьте тогда добры, укажите мне тот пункт правил, который прямо запрещяет обсуждать неспецифичные для Calculate вещи.

3.“А гуглить за вас никто не захотел.” А мне много не надо, просто приведите список опций rsync, которые могут заметно ускорить/замедлить копирование. Разве это так трудно? Да, в man rsync об этом написано, но тут нужен личный опыт, дабы знать насколько сильным будет эффект от этих опций. Я конечно мог бы провести эксперимент с разными опциями rsync, но увольте, я не мазохист. Ведь с такой скоростью копирования это займёт целый день, в лучшем случае. Кстати про проверку контрольных сумм читал, но мне просто казалось само собой разумеющимся, что эта проверка отключена при локальном копировании файлов. И да, man rsync хранит партизанское молчание об том, как отключить проверку checksum. Может быть Вы знаете?

4. “что за разделы(фс)?”
ext3 оба раздела

“что за диск(скоростной)?”
Старый Samsung SP0411N

“как далеко расположены партиции?”
Диск ёмкостью 40 гигабайт разделен ровно на две половины. Но думаю в данном случае это не имеет значения, так как скорость доступа из-конца-в-конец у моего диска лишь чуть-чуть выше, чем при средней скорости произвольного доступа.

“сколько RAM-а свободно(соответственно сколько кэша)?”
Думаю это тоже не играет роли, ведь rsync я запускал в тех же условиях, что и инсталятор, с Calculate Live DVD.

“вроде умирающего жесткого сыплющего бэдами”
Вряд ли. я запускал разные программы для проверки диска, вроде Victoria и MHDD, и ни одна из них не нашла НИ ОДНО бэд-блока.

“Какой NICE rsync?”
Дефолтный.

Разве было так трудно дать ответ хотя бы в духе “RTFM” ?

А мне много не надо, просто приведите список опций rsync, которые могут заметно ускорить/замедлить копирование. Разве это так трудно? Да, в man rsync об этом написано, но тут нужен личный опыт, дабы знать насколько сильным будет эффект от этих опций.

RTFM

Почему НИКТО не отвечает?
Разве на этом форуме нельзя обсуждать смежные темы?

Можно, и даже обсуждаются, и это нормально.
Но ваш вопрос звучит как:

  • Я включил машину, соединив провода в нужной последовательности, а она очень медленно едет. Подчеркиваю - это фактически было соединение нужных правильных проводов в правильной последовательности. Есть идеи почему так?

  • Почему НИКТО не отвечает?

  • Вы бы хоть в документацию по электропроводке послали. А какие хоть цвета то стоило соединять(какие опции я задавал я соединял - я по прежнему промолчу) , и как вообще передачи переключать надо, это же не трудно. Ваш водительский опыт я ценю больше чем сухую информацию в man-е учебнике по вождению для самых начинающих, или ответах гугла на вопрос как создать бэкап корневого раздела при помощи rsync завести <модель машины> без ключа

вроде умирающего жесткого сыплющего бэдами
Вряд ли. я запускал разные программы для проверки диска, вроде Victoria и MHDD, и ни одна из них не нашла НИ ОДНО бэд-блока.

Так Victoria или MHDD? версия какая? smart смотрели? запускали тесты на чтение/запись? тест был линейный/рандомный/бабочка?

Старый Samsung SP0411N

хард висит на PATA. шлейф 40/80 пиновый? Что за мать(точнее какой pata-контроллер) Victoria3.4 умеет(с MHDD не работал - не знаю) проверять производительность интерфейса, старые шлейфы часто грешат ошибками чтения, и как следствие увеличением количества CRC-проверок отнимающих время и отражающихся в smart-е.

Диск ёмкостью 40 гигабайт разделен ровно на две половины. Но думаю в данном случае это не имеет значения, так как скорость доступа из-конца-в-конец у моего диска лишь чуть-чуть выше, чем при средней скорости произвольного доступа.

Запустите линейное чтение диска, а потом butterfly (в Victoria) и сравните скрость доступа последовательного, и с перемещением голов из начала в конец и обратно.

“сколько RAM-а свободно(соответственно сколько кэша)?”
Думаю это тоже не играет роли, ведь rsync я запускал в тех же условиях, что и инсталятор, с Calculate Live DVD.

Чтение из подмонтированного архива одного привода (squashfs), и запись на другой привод это одно. Чтение с одной части HDD и запись на другую - это совсем другое.
Во втором случае чем больше кеш, тем меньше движений головы диска(самая медленная операция)

И да, man rsync хранит партизанское молчание об том, как отключить проверку checksum. Может быть Вы знаете?

Не знаю, не задавался таким вопросом. Даже при локальной синхронизации одной директории с другой, обычно, при малой разнице между src(SOURCE) и dst(DESTINATION), скорость чтения и сравнения файлов из обоих мест в разы выше, чем переписывание всего подряд.
Если вам надо было скопировать в пустой dst - man cp вам в помощь

PS
По теме rsync-а:
про ключи -avAH rsync-а вам стоит почитать.
А еще, учесть, что к корню примонтированы другие FS по некоторым адресам, и mount bind вам в помощь.
<<Но это ps не отменяет необходимости прочтения всего выше написанного.>>

Но ваш вопрос звучит как ??

Вы уж извините, но я не понимаю этой аналогии. Скажите прямо, в чём мои ошибки?
Этим Вы сэкономить время и нервы всем нам.

“какие опции я задавал я соединял - я по прежнему промолчу”

Я знаю, что здесь сидят не телепаты. Мне просто казалось(и до сих пор кажется), что такая информация является избыточной. Я ожидал, что ответ будет в духе “Такие-то и такие-то опции могут замедлить/ускорить копирование с помощью rsync. Попробуйте, вдруг поможет”
Далее следовал бы один из двух возможных вариантов ответа с моей стороны:
1.Спасибо, помогло! Причина тормозов была в использовании/неиспользовании таких-то опций.
2.Странно, я всё это попробовал, но заметных улучшений не заметил. Может быть виновато то-то или это? (Строю новую гипотезу).
Как видите, ничто не мешало дать ответ и без такой информации. Мне было бы интересно узнать, почему Вы думаете иначе.
Хотя если Вы просите, то не буду вредничать. Вот комманда использовавшаясь для восстановления резервной копии:
rsync -aPXН /путь/к/папке/бэкапа /путь/к/системному/разделу

“Ваш водительский опыт я ценю больше чем сухую информацию в man”

Окей. Вот в man rsync пишется, что при проверке контрольной суммы происходит “некоторое замедление”. А вот на форумах я прочитал, что из-за этого замедление может быть очень даже нехилым. Вот Вам и “некоторое замедление”. Спрашивается, кому верить?

"ответах гугла на вопрос как создать бэкап корневого раздела при помощи rsync "

Мне это не нужно потому, что я уже ЗНАЮ как это сделать. Ещё до того как создать этот вопрос, я прочитал в Интернете руководство на английском языке об том, как сделать аналог маковской Time Machine с помощью rsync. Если бы я не знал, то этот вопрос даже не появился бы на свет.

“Так Victoria или MHDD?”

Оба.

“версия какая?”

Самые новые. Victoria в бесплатной редакции.

“smart смотрели?”

Я пытался(причём с помощью разных программ), но на моём диске это оказалось невозможно, хотя он и поддерживает такую функцию. Возможно это связанно с тем, что я отключил SMART в BIOS. Но я был вынужден это сделать, иначе весь компьютер (не только жесткий диск. То есть, загрузка становилась невозможной даже с флэшки или лазерного диска) отказывался загружаться.

“запускали тесты на чтение/запись?”

Насчёт записи не помню, но на чтение точно запускал. Насколько помню, линейный тест завершился примерно за 13 минут. А полное уничтожение данных на всём диске, если верить прогнозу программ, составило бы примерно 28 минут. И да, я не могу припомнить ни одного случая, чтобы я потерял файлы из-за диска.

“тест был линейный/рандомный/бабочка?”

Линейный, рандомный и еще один особый режим в MHDD, в котором головка скакала от начала диска на другие сектора и обратно. Причём растоянние между читаемой областью и началом диска постепенно становилось всё больше и больше. Как я уже говорил, минимальная скорость в этом режиме была лишь чуть-чуть ниже, чем при рандомном. Все тесты показали, что на диске нет бэдблоков. Я ещё запустил режим дефектоскопа в Victorai в режиме линейного чтения. Он обнаружил 3 блока, которые потенциально могут стать бэд-блоками.

“хард висит на PATA?”

Нет, на ATA-6

“шлейф 40/80 пиновый?”

К сожалению, не знаю.

" Что за мать(точнее какой pata-контроллер)"

Мать ASRock P4VM800 . А насчёт контроллера, вот строчки вывод из lspci, мне кажется это то что нужно:
00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP])
Subsystem: ASRock Incorporation K7VT2/K7VT6 motherboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 32
Interrupt: pin A routed to IRQ 20
Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
Region 4: I/O ports at fc00 [size=16]
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME (D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: pata_via
Kernel modules: pata_via

“Victoria3.4 умеет(с MHDD не работал - не знаю) проверять производительность интерфейса”

Вроде бы я это тоже проверял. Неуверен. Ладно, ещё раз проверю.

“Запустите линейное чтение диска, а потом butterfly (в Victoria) и сравните скрость доступа последовательного, и с перемещением голов из начала в конец и обратно.”

ОК, сделаю. Но какой в этом смысл?

“Чтение из подмонтированного архива одного привода (squashfs), и запись на другой привод это одно. Чтение с одной части HDD и запись на другую - это совсем другое.”

Ну да, не одно и тоже. Но ведь привод компакт-дисков по любому медленней, чем жесткий диск. Поэтому если разница и есть, то явно не в пользу инсталятора Calculate Linux. Или я чего-то не понимаю?

“Если вам надо было скопировать в пустой dst - man cp вам в помощь”

Так ведь разве cp не гораздо более примитивный инструмент, чем rsync, который при копировании не учитывает столько тонкостей, в отличии от последнего?
Поправьте меня, если я ошибаюсь. К тому же, rsync имеет прогресс-бар и может возобновлять прерванное копирование на том же месте.

“про ключи -avAH rsync-а вам стоит почитать.”

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

“А еще, учесть, что к корню примонтированы другие FS по некоторым адресам”

И это тоже знаю.

Я ожидал, что ответ будет в духе…

Возможно не все со мной согласятся, но лучшее оформление просьбы о помощи - это:

# ЦЕЛЬ (для того-то и того-то,) Я стараюсь сделать это и это.
# КАК И ЧТО Я ДЕЛАЛ я запустил (из под root-а или текущего пользователя, если это важно) следующие команды:

# эту_команду --параметр1 <остальные параметры>
вывод этой команды, если он имеет значение для вопроса
 # потом_эту_команду | wgetpaste
### вывод этой команды также важен, но он слишком большой,
### ...поэтому я его выложил отдельно в wgetpaste
 # и_эту_команду -п -пп --параметр=3
...
### эта команда тривиальна или вывод ее очевиден и/или не существенен,
### ...поэтому его я не выкладываю, но о самой команде пишу, т.к. 
### ... мне важно чтоб у вас создалось верное впечатление о том 
### ... что я выполнял. В конце концов помощь нужна мне

и ожидал получить следующее… (если это важно, то примерно за какой срок), а получил вот что (аналогично - если важно, за какое время)…
# ПОИСК ПРЧИН чтоб проверить я использовал это… и это…
результат такой-то…
# ОПИСАНИЕ ОБОРУДОВАНИЯ поскольку это касается следующего оборудования <hdd|video|etc>, возможно будет важна следующая инфа:

# lspci -s 01:23.4 -vv
......
 # lsusb -d 0123:4567
.....
 # smartctl -a /dev/sdX | wgetpaste
### тут вывод длинный, так что wgetpaste
#

иногда важны переменные окружения, если это так, то:
# env |wgetpaste
урл который wgetpaste вернул
и/или переменные emerge-а, так что дополнительно вот это:
# emerge --info |wgetpaste
Если когда надо - скриншоты или фото оборудования
# ЗАКЛЮЧЕНИЕ Если выше не очевидно - обобщение проблемы и формулирование вопроса.

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


Пожалуйста, оформляйте цитаты как

цитаты

а насчет вывода из lspci - как код.
Детали в помощи по форматированию текста
Также используйте “Предварительный просмотр” чтоб убедиться, что ваш пост выглядит именно так как вы бы хотели.


Возможно это связанно с тем, что я отключил SMART в BIOS.

smart можно включить во время работы OS, как в victoria это сделать я не помню, но из linux это делается так

## читаем внимательно
man smartctl
## включаем смарт
smartctl -o on /dev/sda
## смотрим что же с диском
smartctl -a /dev/sda |less

Но я был вынужден это сделать, иначе весь компьютер (не только жесткий диск. То есть, загрузка становилась невозможной даже с флэшки или лазерного диска) отказывался загружаться.

Скорее всего ваш хард умирает, или что-то с материнкой. И разговор надо было начать именно с этого.

Вот комманда использовавшаясь для восстановления резервной копии:
rsync -aPXН /путь/к/папке/бэкапа /путь/к/системному/разделу

об этом тоже стоило написать еще в первом посте.
кстати, -X в корне ни к чему(хоть и не помешает)
а вот весто -P можно было бы указать -v, тогда вы бы видели что и сколько времени занимает.

Но ведь привод компакт-дисков по любому медленней, чем жесткий диск, плюс кеш привода.

но часть данных из squash-а уже в памяти, а остальное читается в сжатом виде, а чтение с харда сжатого и распаковка squash-а на лету в любом случае быстрее чтение распакованного с харда (к примеру поищите советы как в gentoo держать /usr/portage и /usr в squash-е, и обоснования этого)

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

… и учет этих тонкостей требует пересчета контрольных сумм.

Возможно не все со мной согласятся, но лучшее оформление просьбы о помощи - это

Хорошо, буду теперь делать как Вы предложили. Просто мне показалось ненужным перегружать людей таким потоком информации.

Результаты проверки интерфейса с помощью Victoria:
Тест работал в течении часа, не было обнаружено ни ошибок, ни замедленний.
Результат сравнения линейного режима и режима “бабочка”:
Линейный от 56762 kb/s до 54182 kb/s
Бабочку я запускал только на пару минут, так как не видел смысла в полном тестировани, ибо в самом начале происходили скачки с самого начала на самый край.
Естестенно, была зафиксированна только самая минимальная скорость, но думаю, что этого достаточно: 5183 kb/s

Вывод smartctl :

smartctl -o on /dev/sda

smartctl 5.42 2011-10-20 r3458 [i686-linux-3.5.3-calculate] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
Error SMART Values Read failed: scsi error aborted command
Smartctl: SMART Read Values failed.
Warning: device does not support SMART Automatic Timers.
Error SMART Enable Automatic Offline failed: scsi error aborted command
Smartctl: SMART Enable Automatic Offline Failed.

smartctl -a /dev/sda

smartctl 5.42 2011-10-20 r3458 [i686-linux-3.5.3-calculate] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     SAMSUNG SP0411N
Serial Number:    S01JJ40Y970798
Firmware Version: TW100-13
User Capacity:    40,060,364,800 bytes [40.0 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   7
ATA Standard is:  ATA/ATAPI-7 T13 1532D revision 0
Local Time is:    Mon Oct  1 22:50:21 2012 BDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Error SMART Values Read failed: scsi error aborted command
Smartctl: SMART Read Values failed.
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: UNKNOWN!
SMART Status, Attributes and Thresholds cannot be read.
Error SMART Error Log Read failed: scsi error aborted command
Smartctl: SMART Error Log Read Failed
Error SMART Error Self-Test Log Read failed: scsi error aborted command
Smartctl: SMART Self Test Log Read Failed
Device does not support Selective Self Tests/Logging

Скорее всего ваш хард умирает, или что-то с материнкой. И разговор надо было начать именно с этого.

Вряд ли хард умирает, уж очень чистые результаты тестов. Мне лично кажется, что просто SMART глючит.
А вот насчет материнской платы даже не знаю. Вроде бы она работает нормально.

… и учет этих тонкостей требует пересчета контрольных сумм.

Я наверное сделаю так: прочитаю man cp и постараюсь выбрать такие опции, чтобы учитывалось максимально возможное число нюансов, вроде копирования прав, символических ссылок и т.д. А потом просто воспользуюсь rsync и сравню результат с бэкапом rsync`а на предмет отличий. Если отличия будут, то значит, cp всё-таки что-то не учитывает. И да, заодно узнаю скорость cp в самом “грубом” режиме, без учета копирования прав и прочих прибамбасов.

То что смарт не включается - явный глюк.
Связан он с хардом или материнкой - надо разбираться.

Найдите возможность:
# Воткнуть этот хард в другую материнку, и на ней посмотреть smart.
# Воткнуть в вашу материнку другой хард, и проверить - увидет ли смарт.

Все дальнейшие опыты с этим хардом я бы отложил до выяснения “что же хард о себе думает”. Это конечно, если такая возможность есть.

Линейный от 56762 kb/s до 54182 kb/s
Бабочку я запускал только на пару минут, так как не видел смысла в полном тестировани, ибо в самом начале происходили скачки с самого начала на самый край. Естестенно, была зафиксированна только самая минимальная скорость, но думаю, что этого достаточно: 5183 kb/s

Поскольку у вас две партиции, да и памяти не много, при rsync, да и при cp, происходит постоянное прыгание головы из начала в конец и обратно.

Также по теме rsync - опцию -v пробовали?
Поиграйте с командой logger, чтоб перенаправить вывод rsync в syslog.
Это поможет проанализировать по логам - что сколько времени занимает.
Для чистоты эксперемента, проводить этот замер имеет смысл загрузившись с livecd. При этом логи будут только в памяти, и не будет происходить лишних обращениц к харду.

Также я все-же глянул бы - сколько времени будет отрабатывать cp -av, и может быть, cp -a без -v.
Это поможет легче найти в чем затык - в производительности жесткого при перескоках из стороны в сторону, или в подсчете контрольных сумм rsync-ом.