متطلبات ذاكرة إعادة البناء العالية: إصدار أبريل 2025

حسناً، تم الانتهاء من الاختبار التالي.

لقد قمت بالبناء باستخدام الإضافات التالية:

https://github.com/discourse/docker_manager.git
https://github.com/discourse/discourse-data-explorer
https://github.com/communiteq/discourse-legal-compliance
https://github.com/pfaffman/discourse-allow-pm-to-staff
https://github.com/singerscreations/discourse-stopforumspam
https://github.com/discourse/discourse-cakeday

تم تعطيل الـ Swap، لذا تم استخدام 4GiB/3.8GB من ذاكرة الوصول العشوائي فقط.

بلغ الحد الأقصى لاستخدام الذاكرة أثناء البناء 3.4GB. استغرقت عملية البناء 6 دقائق و 48 ثانية.

4 إعجابات

في طريقي المشكلة هي ملف المبادلة، بعد زيادته من 0 إلى 2 جيجابايت، كل شيء على ما يرام في الوقت الحالي.

sudo fallocate -l 2G /swapfile        
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

في طرفية الخادم الخاص بك. بعد ذلك، أعد البناء.

إعجابَين (2)

أواجه زيادة كبيرة في الذاكرة المطلوبة لإعادة البناء. لدي 8 جيجابايت من الذاكرة وحتى إضافة ملف مبادلة (swapfile) بحجم 8 جيجابايت ينفد المساحة في هذه الخطوة: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate

إنه تثبيت متعدد المواقع (multisite) بأربعة منتديات. لم أكن بحاجة لإضافة ملف مبادلة من قبل.

تعديل جربت الآن مع مبادلة بحجم 16 جيجابايت ولا يزال ينفد مني الذاكرة.

هذا تحت نظام لينكس (Linux)، مع تفعيل الحد الأدنى من الإضافات.

إعجابَين (2)

هممم… أتساءل، هل يجب تحديث الوثائق لتعكس متطلبات ذاكرة أعلى؟ هل ساعد Introducing pre-compiled JS assets for self-hosters في تقليل التحميل؟ كنت أعتقد أنه مع هذا التغيير، هناك حاجة إلى ذاكرة وصول عشوائي (RAM) أقل :thinking: .

قد تكون مرت بضعة أشهر منذ أن قمت بإعادة بناء، لكنها كانت تعمل بشكل جيد من قبل بذاكرة وصول عشوائي (RAM) سعة 8 جيجابايت وبدون مساحة مبادلة (swap). ما زلت لم أحل هذه المشكلة ولذلك جميع المواقع الأربعة معطلة.

لا أعرف ما إذا كان هذا مرتبطًا، ولكنه لم يكن ليبنى حتى قمت بتعيين متغير البيئة HOME: /var/www/discourse - كان سيحاول الكتابة إلى /root وإلا سيحصل على رفض الإذن.

هممم، أرى أكثر من مائة من هذه العمليات:

node /usr/bin/pnpm add pnpm@10.28.0 --loglevel=error --allow-build=@pnpm/exe --no-dangerously-allow-all-builds --config.node-linker=hoisted --config.bin=bin

هل هذا نوع من قنبلة التشعب (fork bomb)؟

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

بالتأكيد أضف الكثير من المبادلة (swap) حتى لو كان ذلك فقط لإعادتك إلى العمل. ميزة استخدام المبادلة هنا هي أن عمليات البناء هي ارتفاع مؤقت.

أنا أستخدم إعداد الحاويتين (two container setup) والذاكرة تكون تحت ضغط أكبر أثناء التمهيد (bootstrap) حيث يكون لديك أيضًا حاويتان قيد التشغيل. :sweat_smile:

لقد أضفت 40 غيغابايت من مساحة المبادلة (swap) والآن لم تعد كافية.

أرى المئات من عمليات node هذه، هل هذا هو سبب المشكلة على ما يبدو؟

بدأت أعتقد أن السبب الجذري هو نفسه مشكلتي السابقة حيث كان عليّ تعيين HOME: /var/www/discourse وإلا فإنه سيحاول كتابة الملفات تحت /root. لست متأكداً مما يجب فعله حيال ذلك مع ذلك.

إعجابَين (2)

حسنًا، هناك خطأ فادح. سأفكر أيضًا في عمل نسخة احتياطية وإعادة الإنشاء من الصفر.

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

كيف يمكنني فعل ذلك؟

شاهد:

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

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

كانت المشكلة بالفعل تتعلق بعدم تعيين HOME بشكل صحيح، وإضافة -H إلى أمر sudo لترحيل المواقع المتعددة أصلح المشكلة، كما هو مفصل هنا:

6 إعجابات