أتساءل، بالإضافة إلى مشكلات مساحة القرص، هل تجاوزت عملية الترقية الذاكرة المتاحة (1 جيجابايت) المخصصة للنقطة؟ يمكنك رؤية مرجع إلى ‘نفذت الذاكرة’ كالعنصر الأول المسجل في لقطة شاشة وحدة التحكم أعلاه بعد تشغيل أمر ./launcher rebuild app.
ما لم أذكره هو أنه بعد تلك المحاولة، توقفت وحدة التحكم عن الاستجابة (رغم أنني كنت في تلك المرحلة أستخدم وحدة التحكم المستندة إلى الويب في لوحة تحكم Digital Ocean، وهي دائمًا غير مستقرة)، ثم قمت بإعادة تشغيل النقطة بالطاقة. (بعد ذلك استخدمت PuTTY).
على أي حال، لا، ليس من الجيد أن يتم الإبلاغ عن التحديث على أنه ناجح عبر صفحة ترقية Discourse بعد التعرض على ما يبدو لنفس مشكلة الذاكرة و/أو القرص.
آه، قاتل استنفاد الذاكرة (OOM killer) قد عمل. هذا بالتأكيد ليس بالأمر الجيد. عادةً ما أنصح بزيادة مساحة الذاكرة التبادلية (swap). يمكنك رؤية الاستخدام الحالي باستخدام الأمر swapon، وفي حالتي:
# swapon
NAME TYPE SIZE USED PRIO
/swapfile file 2G 3M -2
أيضًا الأمر free:
# free
total used free shared buff/cache available
Mem: 1992060 792904 80148 34696 1119008 1004956
Swap: 2097148 3084 2094064
سيكون الأمر سيئًا إذا لم يكن ملف الذاكرة التبادلية بحجم 2 جيجابايت نشطًا. من السيئ أنك لا تستطيع إضافة ذاكرة تبادلية دون استخدام مساحة على القرص!
إحدى الطرق لتحسين مساحة القرص قبل الترقية هي نسخ جميع ملفات النسخ الاحتياطي إلى موقع خارجي، والتحقق من سلامتها، ثم حذفها من الخادم. فأنت بحاجة ماسة إلى نسخة احتياطية حديثة وجيدة في مكان آمن أثناء الترقية، احتياجًا للطوارئ، لكن لا يشترط أن تكون على الخادم نفسه. سأشعر بالراحة في حذف جميع الملفات ما عدا الأحدث، لكنني بالتأكيد سأقوم بنسخة خارجية.
سيكون من الجيد رؤية نتائج الأمر du مرة أخرى، بعد أن قمت بكل عمليات التنظيف.
أتساءل: هل الـ 1 جيجابايت هي تخصيص الذاكرة العشوائية (RAM) والـ 25 جيجابايت هي تخصيص القرص؟ الأمران مختلفان تمامًا.
تعديل: القصة القياسية المدعومة، كما أعتقد، هي أن يكون لديك ذاكرة عشوائية أكثر من 1 جيجابايت.
تعديل: لا، يبدو أن 1 جيجابايت لا تزال الحد الأدنى الموصى به مطلقًا.
لقد قمت بالاتصال مجددًا، وأظهرت معلومات النظام عند فتح نافذة وحدة التحكم ما يلي:
تحميل النظام: 0.01 العمليات: 136
استخدام /: 59.4% من 24.06 جيجابايت المستخدمون المسجلون: 0
استخدام الذاكرة: 73% عنوان IP لـ eth0: 159.65.140.176
استخدام مساحة التبديل: 17% عنوان IP لـ docker0: 172.17.0.1
إذن، هل تعني مساحة التبديل بنسبة 17% أنها تساوي 4 جيجابايت؟
مع عدم وجود أي مستخدم مسجل الدخول إلى المنتدى، ومع وجود اتصال PuTTY الحالي فقط مع droplet نشط، فإن الذاكرة العشوائية (RAM) ممتلئة بنسبة 73%، مما يشير إلى أن أي نشاط بسيط قد يدفع المنتدى إلى استخدام مساحة التبديل. وإذا كان ذلك يستهلك من مساحة الـ 24 جيجابايت، فقد يُشكّل ذلك العاصفة المثالية أثناء التحديث، خاصةً مع ارتفاع استخدام مساحة القرص بالفعل؟
أعتقد أنه يمكنك تحسين ذلك باستخدام journalctl، ربما مع الأمر:
# journalctl --vacuum-size=50M
(الذي يمكنك تنفيذه فورًا قبل محاولة الترقية)
من المثير للاهتمام أن استخدام PostgreSQL لم ينخفض.
أمر free سيُظهر لك استخدام الذاكرة الافتراضية (Swap): فهي مستخدمة بنسبة 17% من كمية معينة، على الأرجح 2 جيجابايت.
من الواضح أن جهازك صغير بعض الشيء بشكل غير مريح: فأنت بحاجة إلى مزيد من ذاكرة الوصول العشوائي (RAM) أو مزيد من الذاكرة الافتراضية، ولا يمكنك عمليًا زيادة الذاكرة الافتراضية بشكل كبير دون الحصول على مساحة تخزين إضافية على القرص.
أعتقد أن هذا الأمر يقع إلى حد ما في فئة التنبؤ بالمستقبل! إن التحقق من وجود مساحة قرص تبلغ 5 جيجابايت مفيد بوضوح، لكنه لن يكون محكمًا تمامًا. أما الذاكرة العشوائية (RAM) الحرة فمسألة أكثر تعقيدًا، إذ يصعب تحديد مقدار ما سيُحتاج إليها بدقة. وأظن أنها ستكون دالةً لحجم المنتدى الذي وصل إليه، وربما أيضًا لما يجب تعديله خلال كل ترقية.
أحرص على تقليل التكاليف، لذا سأقضي وقتًا في محاولة الاندماج في خادم رخيص. لكن في نهاية المطاف، ومع نمو المنتدى، سيكون من الجدير بلا شك الانتقال إلى المستوى الأعلى. وهذا سيتطلب تكاليف مالية، لكنه سيوفر الوقت والجهد.
للأسف، أنا أقرب جدًا إلى جانب ‘تقليل التكاليف’ في الميزانية - فالمنتدى هو جهد تطوعي بحت لا يدر أي دخل، ومع إضافة ميزة النشر عبر البريد الإلكتروني (عن طريق MailGun) التي يطالب بها المستخدمون، فإن تكاليف تشغيله شهريًا ترتفع قليلاً.
وبالمقارنة مع الهوايات الأخرى، أعتقد أنه أرخص من الترويح في نوادي الليل!