هل يجب تقليل إعادة الخبز لتجنب نفاد الذاكرة؟

أحاول إعادة خبز 45 ألف مشاركة لأنني قمت بتغيير عنوان URL لشبكة توصيل المحتوى (CDN) الخاصة بـ S3 ويستمر في نفاد الذاكرة ويتم إيقافه.

قرأت هذا حول إعداد ملف مبادلة (swapfile)…

الأمران الأولان سارا على ما يرام…

  1. إنشاء ملف مبادلة فارغ

    install -o root -g root -m 0600 /dev/null /swapfile

  2. كتابة ملف بحجم 2 جيجابايت باسم ‘swapfile’

    dd if=/dev/zero of=/swapfile bs=1k count=2048k

ولكن بعد ذلك عند تنفيذ mkswap /swapfile ظهر لي خطأ…

خطأ mkswap: ملف المبادلة مُثبَّت ولن يتم إنشاء مساحة مبادلة

حاولت هذا بدلاً من ذلك…

swapoff /swapfile && rm /swapfile

وحصلت على هذا الخطأ…

swapoff: لست مستخدمًا خارقًا (Not superuser)

أنا على Digital Ocean Droplet، لذا أفترض أنه ليس لدي الأذونات اللازمة لذلك؟

بعد مواجهة هذه العقبات، حاولت بدلاً من ذلك إعادة خبز المشاركات غير المخبوزة فقط بتشغيل…

rake posts:rebake_uncooked_posts

سيقوم بتشغيل بضع مئات، ربما بضعة آلاف إذا كنت محظوظًا، ثم يتوقف مرة أخرى. بعد مراقبته منذ الأمس، أنا نصف مخبوز. :wink:

هل هناك طريقة لتشغيل أمر إعادة الخبز مع تحديد معدل (throttled)؟ لا أهتم إذا استغرق الأمر وقتًا طويلاً، أو طوال الليل أو أي شيء آخر، أريده فقط أن يتوقف عن الفشل.

سأكون ممتنًا جدًا لأي مساعدة.

من الغريب أنني تركت التشغيل غير المكتمل يعمل مرة أخرى بينما كنت أكتب كل ذلك. ذهبت لتناول غداء طويل مع بعض الأصدقاء وعدت ليجد أنه قد اكتمل بنسبة 100٪. لست متأكدًا مما إذا كان ملف المبادلة قد بدأ العمل أخيرًا أم أنها كانت مجرد مصادفة توقيت منخفض الاستخدام، ولكن…

انتهى، أخيرًا!

ربما إذا كان لدى شخص ما إجابة، فيمكن أن تساعد شخصًا آخر أو أنا في المرة القادمة.

على أوبونتو:

Sudo -i

على دبيان

Su -

إعجاب واحد (1)

شكراً لك. لست متأكداً مما إذا كنت قد فعلتها بشكل صحيح أم لا.

هذا لا يبدو صحيحًا. ما هي التعليمات التي تتبعها؟

ولماذا تقوم بإنشاء مساحة مبادلة (swap) داخل الحاوية؟ مساحة المبادلة مخصصة للإنشاء على المضيف وليس داخل الحاوية.

لأنني بالكاد أعرف ما أفعله. :wink:

إذًا هذا على مستوى قاعدة ubuntu: وليس على مستويات ubuntu:/var/discourse أو ubuntu-app:/var/www/discourse؟

أي أفكار حول تحديد سرعة إعادة الخَبز (rebake throttling)؟

إعجاب واحد (1)

لم أر قط إعادة الخبز (rebake) يتم تحديد معدلها، فهي غير متزامنة، وتقوم بوضع المهام في قائمة انتظار تتم معالجتها في الخلفية.

إعجاب واحد (1)

حسنًا، شكرًا لك. انتهى الخبز (rebake) الخاص بي في الوقت الحالي، لذا سأعتبر نفسي محظوظًا وأتوقف عن العبث به. :smiley:

تحذير :warning:: لا تقم بأشياء بشكل أعمى على موقع إنتاجي، هناك احتمال كبير لحدوث أخطاء دون أي طريقة حقيقية لاستردادها.
لا، إنه ليس مستوى ubuntu:.
هل قمت بتنفيذ ./launcher enter app قبل محاولة إنشاء مساحة المبادلة (swap)؟ إذا كانت الإجابة نعم، فهذا ما كان يجب عليك عدم فعله.
عندما تسجل الدخول لأول مرة إلى الخادم الخاص بك، فأنت في المضيف (host)، وعندما تدخل إلى التطبيق (app)، فأنت تقوم بتنفيذ إجراءات داخل الحاوية (container).
يجب إنشاء مساحة المبادلة على المضيف، ويعيش التطبيق داخل الحاوية، وهذا ما ستصل إليه لتشغيل أمر إعادة الخبز (rebake).

حسنًا، شكرًا على التوجيه.

منتدانا هو مجرد مجموعة من الأصدقاء ولديه نسخ احتياطية جيدة، لذلك إذا أفسدته لمدة أسبوع أو نحو ذلك، فسيتعين علينا فقط تحمل GroupMe. :wink:

هذا يعني أن لديك بالفعل ملف مبادلة، ويُسمى /swapfile، وهو قيد الاستخدام.

إذا كنت تريد تكبيره، يمكنك إيقاف الحاوية الخاصة بك، ثم إلغاء تثبيته، ثم استخدام أمر dd لتكبيره، وبعد ذلك أمر mkswap.

إذا قرأ شخص آخر هذا، فإن الطريقة التي أتبعها هي استخدام grep swap discourse-setup والنظر إلى الأوامر الموجودة هناك. إنها نسخة أسهل قليلاً مما يجب القيام به.

3 إعجابات

أنا غالبًا ما أعمل كـ “ذيل تحذيري” (قصة تحذيرية).

شكرًا على الإضافة.

إعجاب واحد (1)

لا أعرف عنك، ولكني كنت أعاني مرارًا وتكرارًا من نفاد الذاكرة أثناء عملية إعادة خبز طويلة. أدى إنشاء مساحة مبادلة (swap) بحجم 2 جيجابايت إلى تحسين الوضع (تمت إعادة خبز المزيد من المشاركات)، ولكن لا يزال نفاد الذاكرة يحدث بعد فترة. قمت بزيادة مساحة المبادلة إلى 4 جيجابايت، وتمكنت من إعادة خبز جميع مشاركاتي.

لم أكن أعرف شيئًا عن ملفات المبادلة بخلاف هذا الدليل Create a swapfile for your Linux server ولكن ChatGPT كان لديه معرفة كافية لمساعدتي في زيادة مساحة المبادلة الخاصة بي دون مشاكل.

3 إعجابات

إحدى المشكلات بالنسبة لي هي أنه ليس لدي فهم جيد لما يجب القيام به وفي أي مجال. داخل الحاوية أو خارجها، أو داخل التطبيق أو خارجه. أحاول الاحتفاظ بملاحظات جيدة ولدي اختصارات ذهنية للأشياء التي سأستخدمها مرة أخرى. ولكن بمجرد أن أبدأ في فهم الأمر، أنتهي مما أحتاج إلى القيام به ولن ألمسه مرة أخرى لمدة تتراوح بين 6 إلى 12 إلى 18 شهرًا. ثم أحتاج إلى إعادة تعلمه نوعًا ما.

يبدو هذا وكأنه القصة الحياتية لكل مسؤول نظام :joy:
حلي هو تدوين الملاحظات ثم إنشاء دليل صغير هنا على ميتا

أجعله ويكيًا حتى يتمكن الآخرون من تعديله إذا وجدوا خطأً أو سهوًا، وفي المرة القادمة التي أحتاج فيها إلى القيام بنفس هذا الشيء…

إعجاب واحد (1)