استخدام مرتفع للذاكرة بدون حركة مرور؟

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

حاليًا، أقوم بتشغيل حاوية Discourse على عقدة Digitalocean مع 4 وحدات معالجة مركزية افتراضية و 8 جيجابايت من ذاكرة الوصول العشوائي.

مع تشغيل موقع vbulletin المستورد هنا بدون حركة مرور أو نشاط، يبدأ النظام في استخدام حوالي 75٪ من ذاكرة الوصول العشوائي البالغة 8 جيجابايت وخلال أيام قليلة تصل إلى 100٪ ثم يتوقف عن الاستجابة تمامًا.

هذا يربكني نظرًا لأن الحد الأدنى المطلوب يبدو أقل بكثير من هذا.

(لقد قمت بإعادة بناء الحاوية، وتحققت من مهام sidekiq ومسحتها، ولا يزال الاستخدام مرتفعًا)

هل لدى أي شخص أي نصائح أم يجب أن أبحث عن إعداد ذاكرة وصول عشوائي ضخم لمجرد الحفاظ على عمل المنتدى؟

كم عدد المشاركات التي تم استيرادها؟

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

3 إعجابات

حوالي 240,000 منشور.

تم الاستيراد قبل حوالي 5 أسابيع، وتم المرور عبر 5 عمليات إعادة بناء للتطبيق منذ ذلك الحين، ويبدو أن هذا هو ما يحل مشكلة الذاكرة بمجرد أن يصبح الحاوية غير مستجيبة بنسبة 100% من الذاكرة.

تم مسح جميع المهام في sidekiq كما ذكر، ولا يزال الاستخدام عند 75%

رسم بياني للذاكرة منذ أن قمت بإعادة بناء الخادم بالأمس:

ذاكرة الوصول العشوائي: 8 جيجابايت*

وحدة المعالجة المركزية

حركة المرور

Sidekiq

بالنسبة لي، يبدو أن هذا يتسبب في تسرب الذاكرة ببطء حتى يتعطل بعد بضعة أيام.. (وهو السلوك الذي لوحظ حتى الآن.

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

بعد الاستيراد، من الجيد دائمًا لتحسين أداء قاعدة البيانات إنشاء نسخة احتياطية واستعادتها في نفس المثيل.

هل الرسم البياني للذاكرة هذا يشمل ذاكرة التخزين المؤقت أم يستثنيها؟ (أي، كيف يبدو ناتج free -m؟)

هل هناك أي إضافات؟

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

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-user-card-badges.git
          - git clone https://github.com/discourse/discourse-adplugin.git

فكرة جيدة. شيء سأجربه

لذلك، جعل هذا الموقع غير مستجيب.. (تم النسخ الاحتياطي.. استعادة النسخة الاحتياطية ثم إعادة التشغيل)

استخدام ذاكرة الوصول العشوائي (RAM) ارتفع من 6 جيجابايت إلى 7 جيجابايت والموقع لا يستجيب.

يتم استخدام ما يقرب من 5 جيجابايت بواسطة Redis، مما يترك لـ Discourse القليل للعمل به، خاصة بالنظر إلى عدد الـ unicorns التي تقوم بتشغيلها.

إذا كانت قائمة انتظار sidekiq الخاصة بك نظيفة، فحاول تنظيف Redis حيث قد تحتوي على الكثير من البيانات المهملة من الاستيراد:

./launcher enter app
redis-cli flushall
إعجاب واحد (1)

حسناً، سأجرب أمر redis.
كانت مشكلة عامل unicorn واحدة من المشكلات التي تحققت منها في وقت مبكر. لقد قمت بتغيير استخدام الذاكرة لـ db_shared_buffers وقمت أيضًا بتعيين عمال unicorn إلى 3.
يبدو أن إعداد عمال unicorn له تأثير ضئيل أو معدوم على عدد العمال الذين يعملون بالفعل.

من ملف app.yml الخاص بي

  ## كم عدد طلبات الويب المتزامنة التي يمكن دعمها؟ يعتمد على الذاكرة وأنوىة وحدة المعالجة المركزية.
  ## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على وحدات المعالجة المركزية المكتشفة، أو يمكنك تجاوزها
  UNICORN_WORKERS: 3

لقد أحدث أمر flushall هذا فرقًا كبيرًا.. انخفض الاستخدام إلى 2 جيجابايت.. سنرى ما إذا كان هذا سيستمر الآن.

الجزء المقلق هو أن الأشياء كانت تستمر في النمو من قبل. نأمل أن يسمح هذا للتطبيق بإدارة نفسه بشكل أفضل.

على أي حال.. لذا فإن الاستيراد يحتفظ بالأشياء بشكل دائم في redis؟ يبدو غريبًا ولكني لا أعرف كيف يعمل redis على الإطلاق

شكرًا جزيلاً على المساعدة

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.