Назад | Перейти на главную страницу

Ограничить пропускную способность rsync nfs copy

В настоящее время мы вынуждены ограничить полосу пропускания резервного копирования диском nfs вне нашей сети (через VPN), потому что он заполняет кеш модема, и мы вынуждены перезагружать его, чтобы восстановить связь.

0 22 * * *   flock rsync_wan_lock -c "rsync --rsync-path=\"nice -n5 ionice -c2 -n3 rsync\" --bwlimit 2000 -avrPq --delete-after /var/data/ /mnt/somedrive"

Но этого недостаточно. Даже при условии, что 2000 КиБ, это должно быть 50% скорости передачи (у нас 30 Мбит / с), это все равно заполняет буфер.

Итак, я читал, что rsync вспыхивает, а затем замолкает, чтобы соблюдать bwlimit, и что метаданные все еще не соблюдают bwlimit. Так что я пытаюсь trickle сейчас.

Проблема в том, что каждый документ, который я мог найти, использует trickle на ssh-соединениях через -e вариант. Я не думаю -e будет работать, если я не буду копировать ssh, но они приводят причину, по которой --rsync-path не будет работать из-за разветвления rsync.

0 22 * * *   flock rsync_wan_lock -c "rsync --rsync-path=\"nice -n5 ionice -c2 -n3 trickle -s -u 1000 -d 10000 rsync\" -avrPq --delete-after /var/data/ /mnt/somedrive"

Есть идеи / комментарии? А что с этим модемом творится, с каких пор так легко переполнить модем? Предыдущий брандмауэр был ограничен 10000 и не сталкивался с проблемами кеширования.

Можешь попробовать Wondershaper, из пакета с тем же именем, который представляет собой простой сценарий для установки глобальных ограничений входящей и исходящей полосы пропускания с использованием формирования трафика ядра. tc команда.

Что касается вашего уровня пользователя rsync обеспокоен, нет сети между исходным каталогом /var/data и пункт назначения /mnt/somedrive (передача по сети на сервер NFS происходит за кадром). Следовательно trickle не может работать в этом случае использования. С другой стороны, --bwlimit квалификатор работает с местными переводами.

В ionice вариант должен помочь, но как --rsync-path опция игнорируется на локальных трансферах, нет смысла пытаться применить ее там.

Посмотрите, как это работает для вас

nice -n5 ionice -c2 -n3 rsync --bwlimit 2000K -avP --delete-after /var/data/ /mnt/somedrive

Обратите внимание, что ваш --bwlimit 2000K на самом деле составляет 20 Мбит / с, что значительно превышает 50% вашей максимальной пропускной способности.