Uso de memória constante de duplicidade (duply)

1

Estou experimentando uso constante de alta memória a partir do Duplicity em todos os servidores que o executam como uma ferramenta de backup para o S3.

A duplicidade não deveria executar sua tarefa de backup e matar seu trabalho depois, ou estou faltando alguma coisa aqui?

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)'.

Estou usando o Duply para gerenciar os perfis em cada servidor, eis um deles:

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 "

Aqui está o cronjob para executar os backups:

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

Aqui está um gráfico de 24 horas sobre o uso da memória:

    
por Jasper 20.03.2017 / 11:46

4 respostas

1

Parece que o meu problema foi causado pela versão do Duplicity instalada através do apt-get.

A instalação da versão do tarball resolveu os problemas de memória.

Veja mais informações: link

    
por 06.09.2017 / 23:31
1

Estou usando uma configuração quase idêntica à sua e vendo um uso de memória muito semelhante. Meu python e gpg são ligeiramente mais recentes, e eu não estou usando duply. a duplicidade é 0.7.11.

Uma das máquinas (el6) que testei era o backup de cerca de 3,5 milhões de arquivos para o s3 e um máximo de cerca de 3G de memória res. Restaurando um único arquivo deste backup no máximo em cerca de 3.9G de RAM:

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

Outra máquina (el5) que está fazendo backup de cerca de 7,5 milhões de arquivos está usando atualmente 1,9G res durante a execução.

Imaginando duas coisas que são relevantes para sua postagem:

  1. O uso desta memória é normal? Pensando que isso é provavelmente normal quando há um grande número de arquivos no volume de backup. Se não, quanto devo esperar usar para um backup de 3.5M arquivos de cerca de 50G a s3 ou swift (se for importante).
  2. A alteração do parâmetro --volsize para ser menor que 200M ajuda? Eu notei no changelog que .7.11 aumentou o volume padrão um pouco.

Mais alguma coisa que possa reduzir o uso de memória?

Desculpe, não posso responder à sua pergunta, mas acho que essa postagem é relevante, pois parece que estamos lidando com um problema semelhante. Eu olhei em volta um pouco e não vejo muito sobre o uso de memória de duplicidade normal, exceto que relacionado ao bug de ~ 2012.

Obrigado!

    
por 22.03.2017 / 08:44
0

Também vi isso do Kenneth, que pode ser relevante em arquivos enormes:

Kenneth Loafman (kenneth-loafman) escreveu em 26 de fevereiro de 2016: Em arquivos enormes, um grande número de sigs é gerado e mantido até que o arquivo seja concluído. Para atenuar esse problema, use "--max-blocksize = 20480" ou superior para evitar esse problema.

    
por 22.03.2017 / 09:06
0

Eu tenho o mesmo problema, alguém teve alguma sorte para resolver este problema?

Eu atualizei a duplicidade, python-boto, tentei com alta --blocksize de alta e sem sorte. Faz backups sem nenhum problema para o local do FTP, se eu tentar fazer backup no S3 em caso de falha com o OOM kill ...

É estranho que eu tenha servidores de produção e de preparação, que sejam os mesmos, e faça o backup normalmente para o S3 com 600MB de RAM ao fazê-lo. O servidor de produção consome 3 GB + e depois falha.

    
por 05.09.2017 / 15:47