S3へのバックアップツールとして実行しているすべてのサーバーでDuplicityのメモリ使用量が常に高くなっています。
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を使用して各サーバーのプロファイルを管理しています。そのうちの1つを次に示します。
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時間グラフです。
私の問題は、apt-getを介してインストールされたDuplicityのバージョンが原因であるようです。
Tarballバージョンをインストールすると、メモリの問題が解決しました。
詳細は次のとおりです。 https://answers.launchpad.net/duplicity/+question/577611
私はあなたとほぼ同じ構成を使用しており、非常に類似したメモリ使用量を確認しています。私のpythonとgpgは少し新しい回転数で、duplyを使用していません。duplicityは0.7.11です。
私がテストしたマシン(el6)の1つは、約350万ファイルをs3にバックアップし、最大で約3Gの解像度メモリでした。このバックアップから単一のファイルを復元すると、最大で約3.9GのRAMになります。
29067 root /opt/duplicity/bin/python2 0 3893924 3893957 3894704
約750万個のファイルをバックアップしている別のマシン(el5)は、現在、実行中に1.9G解像度を使用しています。
あなたの投稿に関連する2つのことを疑問に思います:
メモリ使用量を減らすことができる他の何か?
申し訳ありませんが、ご質問にはお答えできませんが、同様の問題を扱っているようですので、この投稿は関連性があると思います。私はかなり周りを見回しましたが、2012年までのバグに関連するものを除いて、通常の重複メモリ使用量についてはあまりわかりません。
ありがとう!
また、巨大なファイルに関連している可能性があるケネスからこれを見ました:
Kenneth Loafman(kenneth-loafman)は2016-02-26に次のように書いています。巨大なファイルでは、ファイルが完成するまで多数のsigが生成され、保持されます。この問題を軽減するには、「-max-blocksize = 20480」以上を使用してこの問題を回避します。
私は同じ問題を抱えています、誰かがこの問題を解決する運がありましたか?
重複、python-botoを更新し、高い--max-blocksizeで試しましたが、うまくいきませんでした。 OOM killで失敗してS3にバックアップしようとすると、FTPの場所に問題なくバックアップされます...
実稼働サーバーとステージングサーバーが同じで、ステージングが600mb RAM使用量でS3に正常にバックアップされているのは奇妙です。実稼働サーバーは3GB以上を消費してから失敗します。