Использование постоянной памяти Duplicity (duply)

Я испытываю постоянное высокое использование памяти из-за Duplicity на всех серверах, на которых она работает как инструмент резервного копирования для S3.

Разве Duplicity не должна запускать свою задачу резервного копирования и затем завершать свою работу, или я что-то здесь упускаю?

duply -v
duply version 2.0.1
(http://duply.net)

Using installed duplicity version 0.7.11, python 2.7.6, gpg 1.4.16 (Home: ~/.gnupg), awk 'GNU Awk 4.0.1', grep 'grep (GNU grep) 2.16', bash '4.3.11(1)-release (x86_64-pc-linux-gnu)'.

Я использую Duply для управления профилями на каждом сервере, вот один из них:

GPG_KEY='FOO'
GPG_PW='FOO'

TARGET='s3://s3-eu-central-1.amazonaws.com/foo-bucket/bar-location'

export AWS_ACCESS_KEY_ID='FOO'
export AWS_SECRET_ACCESS_KEY='FOO'

# base directory to backup
SOURCE='/'

# exclude folders containing exclusion file (since duplicity 0.5.14)
# Uncomment the following two lines to enable this setting.
FILENAME='.duplicity-ignore'
DUPL_PARAMS="$DUPL_PARAMS --exclude-if-present '$FILENAME'"

# Time frame for old backups to keep, Used for the "purge" command.
# see duplicity man page, chapter TIME_FORMATS)
MAX_AGE=2M

# Number of full backups to keep. Used for the "purge-full" command.
# See duplicity man page, action "remove-all-but-n-full".
MAX_FULL_BACKUPS=2

# Number of full backups for which incrementals will be kept for.
# Used for the "purge-incr" command.
# See duplicity man page, action "remove-all-inc-of-but-n-full".
MAX_FULLS_WITH_INCRS=1

# activates duplicity --full-if-older-than option (since duplicity v0.4.4.RC3)
# forces a full backup if last full backup reaches a specified age, for the
# format of MAX_FULLBKP_AGE see duplicity man page, chapter TIME_FORMATS
# Uncomment the following two lines to enable this setting.
MAX_FULLBKP_AGE=1M
DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE "

# sets duplicity --volsize option (available since v0.4.3.RC7)
# set the size of backup chunks to VOLSIZE MB instead of the default 25MB.
# VOLSIZE must be number of MB's to set the volume size to.
# Uncomment the following two lines to enable this setting.
VOLSIZE=100
DUPL_PARAMS="$DUPL_PARAMS --volsize $VOLSIZE "

# more duplicity command line options can be added in the following way
# don't forget to leave a separating space char at the end
#DUPL_PARAMS="$DUPL_PARAMS --put_your_options_here "

Вот задание cron для запустите резервное копирование:

12 3 * * * nice -n19 ionice -c2 -n7 duply database backup_verify_purge --force --name foo_database >> /var/log/duplicity.log 2>&1

26 3 * * * nice -n19 ionice -c2 -n7 duply websites backup_verify_purge --force --name foo_websites >> /var/log/duplicity.log 2>&1

53 4 * * * nice -n19 ionice -c2 -n7 duply system backup_verify_purge --force --name foo_system >> /var/log/duplicity.log 2>&1

Вот 24-часовой график использования памяти:

enter image description here

2
задан 24 May 2017 в 15:48
4 ответа

Похоже, моя проблема была вызвана версией Duplicity, установленной с помощью apt-get .

Установка версии tarball устранила проблемы с памятью.

Дополнительная информация: https://answers.launchpad.net/duplicity/+question/577611

2
ответ дан 3 December 2019 в 09:58

У меня та же проблема, кому-нибудь удавалось решить эту проблему?

Я обновил дублирование, python- boto, попробовал с высоким --max-blockize и не повезло. Он выполняет резервное копирование без каких-либо проблем на FTP-сервер, если я попытаюсь выполнить резервное копирование на S3 в случае сбоя с помощью OOM kill ...

Странно, что у меня есть производственный и промежуточный серверы, которые одинаковы, и промежуточное резервное копирование обычно на S3 с использованием ОЗУ 600 МБ при этом. Рабочий сервер съедает более 3 ГБ и затем выходит из строя.

0
ответ дан 3 December 2019 в 09:58

Я использую почти такую же конфигурацию, как и вы, и вижу очень похожее использование памяти. Мой питон и gpg - немного более новые revs, и я не использую дублирование. Дублирование - 0.7.11.

Одна из машин(el6), на которой я тестировал, была бэкэкапом около 3.5 миллионов файлов в s3 и максимальным объемом памяти около 3Гб res. Восстановление одного файла из этой резервной копии с максимальным объемом 3.9Гб оперативной памяти:

29067 root     /opt/duplicity/bin/python2         0  3893924  3893957  3894704

Другая машина(el5), на которой выполняется резервное копирование около 7.5 миллионов файлов, в настоящее время использует 1.9Гб res во время работы.

Интересно, две вещи, которые имеют отношение к вашему сообщению:

  1. Является ли это использование памяти нормальным? Думая, что это, вероятно, нормально, когда в томе резервной копии находится большое количество файлов. Если нет, то сколько я должен ожидать использовать для резервного копирования 3.5М файлов размером примерно от 50Гб до s3 или rapid (если это важно).
  2. Сможет ли параметр --volsize быть меньше 200М? Я заметил в блоге изменений, что .7.11 увеличил объем по умолчанию.

Что-нибудь еще, что может уменьшить использование памяти?

Извините, что не могу ответить на ваш вопрос, но я чувствую, что эта заметка актуальна, так как, похоже, мы имеем дело с похожей проблемой. Я тут немного осмотрелся и не вижу ничего особенного в нормальном использовании памяти дубликатов, кроме того, что связано с ошибкой ~ 2012.

Спасибо!

2
ответ дан 3 December 2019 в 09:58

Также видел это у Kenneth, что может иметь отношение к огромным файлам:

Kenneth Loafman (kenneth-loafman) писал в 2016-02-26 годах: На огромных файлах генерируется и удерживается большое количество вздохов, пока файл не будет завершен. Для уменьшения этой проблемы используйте "--max-blocksize=20480" или выше.

.
0
ответ дан 3 December 2019 в 09:58

Теги

Похожие вопросы