Если в системе не может быть установлено больше оперативной памяти, стоит подумать о ее замене на ту, которая может.
Это не так быстро, как раздел подкачки, потому что он должен пройти через уровень файловой системы (вы вряд ли заметите разницу), но вы можете создать большой пустой файл, скажем, в /home, и сказать системе использовать его в качестве места подкачки. Например,
dd if=/dev/zero of=/home/swapfile bs=1M count=16384
mkswap /home/swapfile
edit /etc/fstab and add /home/swapfile as more swap
swapon -a
Основная причина такой медленной работы заключается в том, что вы отключили большинство оптимизаций, которые может предложить rsync
. Вы почти на стадии копирования всех включенных файлов при каждом запуске.
Почему? Вы уполномочили --whole-file
вместо того, чтобы разрешить rsync
генерировать различия. Вы также не копируете метку времени с помощью -t
или -a
, поэтому rsync
должен прочитать каждый файл в локальной и удаленной системах, чтобы определить, совпадают ли контрольные суммы.
Попробуйте вместо этого
rsync --dry-run -vvtr \
--exclude='aaa.tar.gz' --exclude='bbb.tar.gz' -exclude='ccc.tar.gz' --include='*.tar.gz' --exclude='*' \
--delete --delete-during \
-e "ssh -p 34577 -i /root/.ssh/backup_rsa" \
root@xxx.xxx.xxx.xxx:/backup/cpbackup/daily/ \
/backup/jarvis/cpanel/$((($(date +\%-d)-1)/7+1))/
Я только что понял это, должно быть, нужно было поспать на нем. Мне не хватает одного из дефисов в исключении. Должно быть, он считывал его как дополнительные параметры, не вызывая никаких синтаксических ошибок, а флаг контрольной суммы -c, вероятно, вызывал его замедление.
Спасибо всем за внимание!