Я купил новый жесткий диск для своего сервера и пытаюсь реорганизовать свои файлы. Для первой передачи rsync
скопировал ~3 ГБ идеально. Однако с эквивалентной rsync
командой вторая передача не удалась.
$ sudo /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 rsync -aEHAXPx /media/a/ /media/b --delete
...
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.1]
Первый запуск скопировал около 550 из 800 ГБ, прежде чем задохнуться. Более поздние попытки скопировали только 1 ГБ, прежде чем умереть. Я не уверен, относится ли это к делу, но источник —назад во времениинкрементальный резервный диск, поэтому он содержит тонну жестких ссылок. Как исправить эту ошибку и завершить команду?
Я использую rsync версии 3.1.1, протокол версии 31.
решение1
dmesg | grep rsync
[85852.560086] Недостаточно памяти: завершить процесс 4242 (rsync) оценка 194 или пожертвовать потомком [85852.562695] Завершен процесс 4243 (rsync) total-vm:121948kB, anon-rss:65752kB, file-rss:4kB – Sparhawk
решения:
- измените скорость rsync на более низкую, чем у ваших дисков.
--bwlimit=6000
.. USB 2 имеет скорость 60 МБ/с /4 для чтения на 2 дисках или /10 для поиска на не SSD... или приобретите XU4 с 2 ГБ ОЗУ и USB3. - изменить параметры памяти ядра
echo 100 > /proc/sys/vm/watermark_scale_factor
- принудительно очистить память во время работы
echo 3 > /proc/sys/vm/drop_caches
- убедитесь, что вы используете ядро 4.9.29
uname -r