こんにちは@ fd0! ブログにリンクされている最近の講演のビデオを見終わったばかりで、ツールと開発プロセスの背後にあるレスティックと哲学が本当に好きになりました。
講演のある時点で、resticは現在複数のファイルを読み取るために約300MBのRAMを割り当てているため、RaspberryPiなどでの実行には適していないことが言及されています。 実行時にその数を手動で減らして、メモリの少ないARMデバイスでresticを使用できるようにするために、コマンドラインオプションを追加することを検討するかどうか疑問に思いました。 どこにでもあるRasPiの隣で、AndroidとSailfishデバイスのバックアップを考えていました。
ねえ、resticに興味を持ってくれてありがとう。 講演で言及した約300MiBのRAMの数は、(主に)2つの目的に使用されます。
上記の私のポイントを要約すると、それは計画されており、ある時点で実装される予定です。
私にはいいですね。 それでは、この問題を開いたままにして、その機能を追跡したいと思います。
同意しました。
サーバーの観点からもこのトピックに興味があるので、必ずしもメモリが少ないわけではありませんが、「まだ十分ではありません」。 :)たとえば、最大950GBのデータ( scanned 64173 directories, 2147728 files in 2:41
)と2GBのRAMを備えたメールサーバーがあり、restic( ionice -c 3 nice -n 19
実行)でOOMに遭遇しました。 Resticのメモリ必要量を計算するための既知の数値はありますか(ファイルごと/ GBごと/ ....)? (私はあらゆる種類の異なるVMでresticを使用してOOMに遭遇しました。これらのニーズを前もって知っていれば、作業が楽になります。メモリ消費を削減する方法があれば、それは素晴らしいことです。)
ありがとう!
私の経験では、1.5TBのリポジトリサイズ(バックアップ用)に対して約4GBのRAMです。 プルーンにはさらに多くの時間がかかります(最大9〜10GBのRAM)。
メモリ使用量は、特定のマシンのデータサイズではなく、リポジトリのサイズに大きく依存します。 したがって、resticリポジトリ自体が約1TBの場合、2GBのRAM(スワップなし)を備えたマシンに100KBのファイルをバックアップすることは不可能です。
ここ:
restic 0.8.3 (v0.8.3-11-gda77f4a2)
compiled with go1.9.4 on linux/amd64
118775 directories
829113 files
129.220 GiB
これについて何か進展はありますか? Resticが大好きですが、メモリが不足しているため、バックアップが完了しません(1.5TBリポジトリ、最大23G RAM、b2バックエンドを使用)。 Afaik、現在、並行性はソース自体を変更することによってのみ変更できます(https://github.com/restic/restic/issues/979#issuecomment-374359647)が、これは実際には維持できません。
メモリ使用量の要件に関して何か変更はありますか?
私もこの問題に直面しています。 2GBシステム250GBレスティックレポ。 ランニング:
ionice -c 3 nice -n 19〜 / local / bin / restic -r / mnt / restic -p rk check --read-data-subset 3/7
(4/14を使用してメモリ使用量を3/7から削減しようとしています)1.7Gかかります。 貧弱なシステムが頭脳を交換しているため、コマンドを完了するのに10時間または12時間かかる場合があります。 また、システムはスワッピングのために他のことにはほとんど役に立たない。
私はレスティックが好きですが、これは持続可能ではありません。
誰かがこの問題の実際の提案が何であるかを明確にすることができますか? つまり、メモリ消費/要件を小さくできるのであれば、なぜそれを行うのではなく、コマンドラインスイッチを使用してより少ないメモリを使用できるようにする必要があるのでしょうか。
可能であれば、より少ないスペースを割り当てることはプロセスが遅くなることを意味すると思います。そのため、デフォルトでこれを行わないことが保証されますか?
すでにメモリ使用量に関して改善があり、他のいくつかはパイプラインにあります。
原則として、私は@rawtazの議論に沿っており、メモリ使用量を減らすことで、resticをはるかに広い分野のデバイスで使用できるようになります。
とは言うものの、もちろん、特に速度と引き換えに、メモリ使用量をさらに調整する可能性はあります。 私は#2794でインデックス関連の可能性に取り組み始めました
これに対する適切な解決策は、ディスク上のリポジトリインデックスを使用するか、#1988で説明されているようにクライアントがインデックスの一部のみをロードできるようにする可能性があります。
最も参考になるコメント
これについて何か進展はありますか? Resticが大好きですが、メモリが不足しているため、バックアップが完了しません(1.5TBリポジトリ、最大23G RAM、b2バックエンドを使用)。 Afaik、現在、並行性はソース自体を変更することによってのみ変更できます(https://github.com/restic/restic/issues/979#issuecomment-374359647)が、これは実際には維持できません。