%2C%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%20%D0%B2%20%D1%81%D0%BE%D0%BA%D0%B5%D1%82%D0%B5%20%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0%20(%D0%BA%D0%BE%D0%B4%2010)%20%D0%B2%20io.c(820)%3F%20.png)
Я купил новый жесткий диск для своего сервера и пытаюсь реорганизовать свои файлы. Для первой передачи 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