مساحة القرص ممتلئة جدًا لتحديث نسخة Discourse

مرحباً،

لدي نسخة صغيرة من Discourse على خادم بسعة 25 جيجابايت. حالياً، المتبقي منها 3.4 جيجابايت فقط، ولا أعرف السبب. هذا يمنعني من تشغيل التحديثات.

لا توجد أي خدمات أخرى تعمل على هذه النسخة غير Discourse، ولم تكن هناك أي خدمات أخرى من قبل.

حتى الآن، لتحرير المساحة، قمت بما يلي:

  • حذف كل السجلات التي يمكنني العثور عليها سواء من Discourse أو من /var/log/journal
  • حذف جميع نسخ احتياطية Discourse ما عدا واحدة
  • حذف جميع صور Docker القديمة
  • تشغيل apt-get autoclean و apt-get autoremove
  • التأكد من عدم وجود نوى قديمة

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

/dev/vda1 يستخدم 20 جيجابايت من المساحة.

هل هناك أي شيء آخر يمكنني فعله؟ هل 25 جيجابايت لم تعد كمية معقولة من مساحة القرص لتشغيل Discourse؟

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

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

إذا كانت عمليات الرفع الخاصة بك بحجم ~25 ميجابايت وقاعدة بيانات PostgreSQL بحجم ~1 جيجابايت، فمن المرجح أن يقوم Discourse بإنشاء نسخ احتياطية لا تحتاجها. أنصحك بفحص إعدادات الاحتفاظ بالنسخ الاحتياطية (الإدارة > الإعدادات > النسخ الاحتياطية) ومراجعة النسخ الاحتياطية الحالية (الإدارة > النسخ الاحتياطية) وحذف أي منها لا تحتاجه.

حذفت النسخة الاحتياطية الوحيدة المتبقية بعد نسخها من القرص. ما زال لدي 3.5 جيجابايت فقط متبقية.

نعم، عذراً، لقد قمت للتو بتحديث مشاركتي بتعليمات محدّثة.

لا يحتوي هذا الخادم على دليل /shared/.

هذا ما حصلت عليه من du -sh /var/discourse/*، بإجمالي 658 ميجابايت فقط:

4.0K    /var/discourse/LICENSE
12K     /var/discourse/README.md
4.0K    /var/discourse/bin
4.0K    /var/discourse/cids
8.0K    /var/discourse/containers
12K     /var/discourse/discourse-doctor
8.0K    /var/discourse/discourse-setup
368K    /var/discourse/image
8.0K    /var/discourse/install-discourse
28K     /var/discourse/launcher
32K     /var/discourse/samples
8.0K    /var/discourse/scripts
657M    /var/discourse/shared
180K    /var/discourse/templates

أكبر استخدام للمساحة في نظام الملفات هو /var/lib/containerd/io.containerd.content.v1.content بحجم 2.4 جيجابايت و/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs بحجم هائل يبلغ 12 جيجابايت

عذراً، نسيت أن أذكر أنك بحاجة إلى أن تكون داخل الحاوية. الملف الذي ذكرته هو من Docker. يمكنك التحقق مما يستخدمه باستخدام docker system df وإجراء قطع شامل باستخدام docker system prune إذا لزم الأمر، فقط تأكد من أن Discourse قيد التشغيل عندما تفعل ذلك.

أه، هذا منطقي.

في الحاوية، الشيء الوحيد الذي يتجاوز حجم الجيجابايت واحد هو /var/www/discourse/vendor/bundle/ruby/ بحجم 2.1 جيجابايت.

سأضيف أنه إذا قمت بتنظيف الصورة التي يقوم التحديث بسحبها، سيكون لدي مساحة كافية، ولكن عندما أحاول التحديث ويقوم بسحبها مرة أخرى، أفقد هذه المساحة. لذا فإن الصورة الجديدة تشغل ما يقرب من 5 جيجابايت من المساحة.

هل يمكنك إظهار إخراج أمر Docker ذلك؟ هذا المجلد يحتوي على جميع جواهر Ruby (Ruby gems)، وهذا الحجم لا يبدو مخيفًا بالنسبة لي.