Restic: تقليل استهلاك الذاكرة مع خيار سطر الأوامر

تم إنشاؤها على ١٥ فبراير ٢٠١٦  ·  13تعليقات  ·  مصدر: restic/restic

مرحبًا @ fd0! لقد انتهيت للتو من مشاهدة الفيديو من حديثك الأخير المرتبط بالمدونة وأصبح حقًا يحب restic والفلسفة الكامنة وراء الأداة وعملية التطوير.

في مرحلة ما من الحديث ، تم ذكر أن restic تخصص حاليًا حوالي 300 ميجا بايت من ذاكرة الوصول العشوائي لقراءة ملفات متعددة ، وبالتالي فهي غير مناسبة للتشغيل ، على سبيل المثال ، Raspberry Pi. تساءلت عما إذا كنت ستفكر في إضافة خيار سطر أوامر لتقليل هذا الرقم يدويًا في وقت التشغيل للسماح باستخدام restic على أجهزة ARM منخفضة الذاكرة. بجانب RasPi في كل مكان كنت أفكر في عمل نسخة احتياطية من أجهزة Android و Sailfish.

optimization repo v2 need triaging feature enhancement

التعليق الأكثر فائدة

هل هناك أي تقدم في هذا؟ أحب الراحة ، لكن النسخ الاحتياطية الخاصة بي لم تكتمل بعد الآن بسبب استنفاد الذاكرة (مستودع 1.5 تيرابايت ، يستخدم ~ 23 جيجا رام ، b2 الخلفية). Afaik ، حاليًا لا يمكن تعديل التزامن إلا عن طريق تعديل المصدر نفسه (https://github.com/restic/restic/issues/979#issuecomment-374359647) ، لكن هذا لا يمكن صيانته حقًا.

ال 13 كومينتر

مرحبا ، شكرا لاهتمامك في restic. يستخدم عدد حوالي 300 ميغا بايت من ذاكرة الوصول العشوائي التي ذكرتها في الحديث لشيئين (بشكل أساسي):

  • حساب scrypt (كلمة المرور): ثوابت scrypt مشفرة بشكل ثابت في الوقت الحالي ، وهناك رقم 17 لإضافة رمز يكتشف تلقائيًا مدى صعوبة تشفير النظام الحالي
  • وجود العديد من المخازن المؤقتة للنقاط / الحزم للنسخ الاحتياطي في الذاكرة: يقترن هذا بإحكام مع الحد الأقصى للتزامن المسموح به. لهذا أود أيضًا الحصول على رمز الضبط التلقائي ، ولكن من المحتمل أيضًا وجود خيار سطر أوامر.

لتلخيص نقاطي أعلاه: لقد تم التخطيط لها وسيتم تنفيذها في وقت ما.

يبدو أمرا جيدا لي. أرغب في إبقاء هذه المشكلة مفتوحة لتتبع تلك الميزة ، إذن.

متفق.

سأكون مهتمًا بهذا الموضوع أيضًا من منظور الخادم ، لذلك ليس بالضرورة ذاكرة منخفضة ولكن "لا تزال غير كافية". :) على سبيل المثال ، لدي خادم بريد به 950 غيغابايت من البيانات ( scanned 64173 directories, 2147728 files in 2:41 ) ومع 2 غيغابايت من ذاكرة الوصول العشوائي واجهت OOM مع restic (يعمل بأقل من ionice -c 3 nice -n 19 ). هل توجد أي أرقام معروفة لحساب احتياجات الذاكرة للراحة (لكل ملف / لكل جيجابايت / ....)؟ (واجهت OOM مع restic في جميع أنواع الأجهزة الافتراضية المختلفة ، والمعروف أن هذه الاحتياجات مقدمًا ستجعل الحياة أسهل ، وإذا كان هناك أي طريقة لتقليل استهلاك الذاكرة فسيكون ذلك رائعًا.)

شكرا!

تجربتي هي حوالي 4 غيغابايت من ذاكرة الوصول العشوائي لحجم إعادة الشراء 1.5 تيرابايت (للنسخ الاحتياطي). يأخذ prune أكثر (حوالي 9-10 جيجابايت من ذاكرة الوصول العشوائي).

لا يعتمد استخدام الذاكرة في الغالب على حجم البيانات على جهاز معين ، ولكن في الغالب على حجم المستودع. لذلك من المستحيل إجراء نسخ احتياطي لملف 100 كيلوبايت على الجهاز مع ذاكرة وصول عشوائي (RAM) بسعة 2 جيجابايت (بدون مبادلة) إذا كان مستودع restic نفسه ~ 1 تيرابايت.

هنا:

  • يبني:
    restic 0.8.3 (v0.8.3-11-gda77f4a2) compiled with go1.9.4 on linux/amd64
  • الأبعاد (لكنني أعتقد في الواقع أن غالبية هذه الملفات - الكثير من نسخ المستودعات ، وذاكرة التخزين المؤقت للبيانات الوصفية ، وبناء الأدلة ، وما إلى ذلك - مستبعدة فعليًا وتلك الأرقام التي تم الإبلاغ عنها بواسطة restic تعكس المبلغ الإجمالي):
    118775 directories 829113 files 129.220 GiB
  • استخدام الذاكرة: حوالي 3.8 جرام لكل تشغيل يومي

هل هناك أي تقدم في هذا؟ أحب الراحة ، لكن النسخ الاحتياطية الخاصة بي لم تكتمل بعد الآن بسبب استنفاد الذاكرة (مستودع 1.5 تيرابايت ، يستخدم ~ 23 جيجا رام ، b2 الخلفية). Afaik ، حاليًا لا يمكن تعديل التزامن إلا عن طريق تعديل المصدر نفسه (https://github.com/restic/restic/issues/979#issuecomment-374359647) ، لكن هذا لا يمكن صيانته حقًا.

هل تغير أي شيء من حيث متطلبات استخدام الذاكرة؟

أنا أيضا أواجه هذه المشكلة. 2GB نظام 250GB restic ريبو. ادارة:

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 ساعة لإكمال الأمر لأن النظام الضعيف يقوم بتبديل أدمغته. كما أن النظام عديم الفائدة إلى حد كبير لأي شيء آخر بسبب المقايضة.

أنا أحب restic لكن هذا ليس مستدامًا.

هل يمكن لأحد أن يوضح ما هو الاقتراح الفعلي في هذه القضية؟ أعني ، إذا كان من الممكن تقليل استهلاك / متطلبات الذاكرة ، فلماذا لا نقوم بذلك فقط وبدلاً من ذلك يكون لدينا مفتاح سطر أوامر لتمكين استخدام ذاكرة أقل؟

أفترض أن تخصيص مساحة أقل ، إن أمكن ، سيعني أن العملية أبطأ ، لذلك من شأن ذلك أن يضمن عدم القيام بذلك بشكل افتراضي؟

كانت هناك تحسينات فيما يتعلق باستخدام الذاكرة بالفعل والبعض الآخر في طور الإعداد.
من حيث المبدأ ، أنا على طول حجة rawtaz أن تقليل استخدام الذاكرة سيسمح لـ restic بأن تكون قابلة للاستخدام في مجال أوسع من الأجهزة.

ومع ذلك ، هناك بالطبع إمكانيات لضبط استخدام الذاكرة ، خاصة التداول من أجل السرعة. لقد بدأت العمل على الإمكانيات المرتبطة بالمؤشر في # 2794

من المرجح أن يستخدم الحل المناسب لهذا فهرس مستودع على القرص أو يسمح للعملاء بتحميل أجزاء فقط من الفهرس كما تمت مناقشته في # 1988.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات