مرحباً بالجميع.
آمل أن يتمكن أحدكم من مساعدتي في حل مشكلة نواجهها حالياً على منتدانا :-
https://forum.combustionpunks.co.uk
هذه قصة طويلة… لكنني أريد تقديم جميع المعلومات التي قد تساعد في حل المشكلة، لذا أرجو الصبر معي. ستلاحظون خلال هذا أنني لا أملك الكثير من الخبرة في Ubuntu ![]()
كان كل شيء يعمل بسلاسة تامة لفترة طويلة جداً
حتى مساء أمس.
نقوم بإعادة هيكلة بسيطة للعلامة التجارية، وتحديث الشعارات وما شابه ذلك، لذا كنت أمس في لوحة الإدارة أقوم برفع الشعارات الجديدة. لاحظت أيضاً أننا متأخرون بضع إصدارات، لذا قمت بتشغيل التحديثات، وكان عليّ تنفيذها يدوياً اتباعاً للتعليمات هنا:-
مثال:
cd /var/discourse
git pull
./launcher rebuild app
بدى أن كل شيء سار على ما يرام، اكتملت التحديثات، وتم رفع الشعارات وعرضها، جربت بعض السمات ثم عدت إلى السمة الأصلية، ثم خرجت لمشاركة اجتماعي متعلق بالمنتدى… نعم، ذهبت إلى الحانة لتناول العشاء مع أصدقائي.
بعد حوالي 30 دقيقة وأنا خارج المنزل، لاحظنا أن المنتدى أصبح غير متصل… ذعر بسيط، ثم لاحظت أن Digital Ocean تواجه مشاكل، فهدأت.
عدت بعد حوالي ساعتين، وتم حل مشاكل Digital Ocean، لكن المنتدى لا يزال غير متصل… لا بأس، قمت بإعادة تشغيل الـ droplet، وعاد كل شيء يعمل بشكل صحيح… بعد حوالي 30 دقيقة أصبح غير متصل مرة أخرى…
ثم فكرت أنه من الأفضل مسح أي تحديثات أخرى معلقة، لذا حاولت تحديث Docker باستخدام الأمر:
wget -qO- https://get.docker.com/ | sh
لم يبدو أن هذا الأمر فعل شيئاً كبيراً.
أعدت بناء التطبيق باستخدام ./launcher rebuild app
لا أعتقد أنه تم التحديث، لأن إعادة بناء التطبيق تظهر الرسالة التالية:
نسخة Docker 17.05.0-ce قديمة، وعند تشغيل أمر docker version يظهر الإصدار 17.05.0-ce
ثم لاحظت أنه قبل أن يصبح المنتدى غير متصل مباشرة، كنا نتلقى رسائل على غرار:-
Out of memory: kill process (convert) or sacrifice child
Out of memory: kill process (ruby) or sacrifice child
شغلت Htop
وجدت العديد من عمليات sidekiq، ووجدت منشوراً حول تقليل عدد الخيوط المعاد تشكيلها في كل مرة - قللت من 80 إلى 2 - لكن المشكلة استمرت.
وجدت عمليات convert تعمل على ملفات JPEG في المسار var/www/discourse/public/uploads/default/original/ (لا أعرف كيفية عرض باقي السلسلة لمعرفة الصور التي تعمل عليها).
استخدام المعالج (CPU) 100% - Ruby var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn -E
حدّثت نظام التشغيل - الآن يعمل Ubuntu 18.04
ما زال Docker على الإصدار 17.05.0-ce.
تم تغيير حجم الـ droplet من 2GB 1vCPU 50GB (10 دولارات) إلى 3GB 1vCPU 50GB (15 دولاراً)
المشكلة مستمرة.
إعادة تشغيل الـ droplet أو إعادة بناء Discourse تعيد المنتدى للعمل لفترة قصيرة (10-30 دقيقة) قبل أن يصبح غير متصل مرة أخرى.
أي مساعدة في هذا الأمر ستكون موضع تقدير كبير، شكرًا مسبقاً لكم.
Matt