Я пытаюсь загрузить с удаленного сервера на локальный ноутбук большой файл (~5G), но загрузка останавливается на 40% размера (2.4G).
Я использую эту команду rsync:
rsync --bwlimit=1200 -rh --progress -e 'ssh -p port' server:/path/to/file Downloads/
Я также пробовал снизить mtu на сервере с 1500 до 1492, но безуспешно.
Есть предложения? :D
решение1
Я не думаю, что это проблема сети.
Гораздо более вероятно, что проблема с памятью. При наличии всего 2 ГБ ОЗУ на сервере и запуске RSYNC на 5G-файле я бы в первую очередь заподозрил сервер. Надеюсь, вы можете следить за памятью сервера, пока он у вас запущен.
На стороне клиента тоже могут быть проблемы. Например, я отказался от RSYNC для Windows, потому что он всегда вылетал на больших файлах, независимо от того, сколько у вас оперативной памяти.
Я бы усомнился, является ли rsync правильным инструментом для работы с такими большими файлами. Конечно, это зависит от файла, но если только какие-либо обновления не поддаются движку diff rsync, то, вероятно, в этом нет смысла. Прямая передача может быть лучше. Вы даже можете использовать что-то вроде zip или tar, чтобы разделить файл, чтобы вы могли отправить его по частям и собрать заново на другом конце.
решение2
попробуйте сделать следующее:
- уменьшите MTU до 1492
судо ifconfig eth0 mtu 1492
- отключить TCP SACK
sudo sysctl -w net.ipv4.tcp_sack=0