الاتصال بشبكة Redis الخاص بك يؤدي أداءً ضعيفًا جدًا

أواجه هذا باستمرار في السجلات - بقيم تتراوح بين ~ 100 ألف و ~ 1.35 مليون - ولكن القراءات القريبة من 100 ألف تبدو شائعة جدًا:

اتصال شبكة Redis الخاص بك ضعيف للغاية. كانت قراءات RTT الأخيرة [97069, 103986, 98459, 100762, 381617]، ومن المثالي أن تكون هذه أقل من 1000. تأكد من تشغيل Redis في نفس المنطقة المتاحة (AZ) أو مركز البيانات مثل Sidekiq. إذا كانت هذه القيم قريبة من 100,000، فهذا يعني أن عملية Sidekiq الخاصة بك قد تكون مشبعة بوحدة المعالجة المركزية؛ قلل من تزامنك و/أو راجع https://github.com/mperham/sidekiq/discussions/5039

يشير هذا إلى أن Redis قد لا يكون قادرًا على استخدام وحدة معالجة مركزية كافية؟ يبدو أن هناك متسعًا كبيرًا لوحدة المعالجة المركزية والذاكرة العشوائية على الخادم نفسه.

أيضًا:
يستهلك Sidekiq الكثير من الذاكرة (باستخدام: 3570.19M) لـ 'www.example.com'، وإعادة التشغيل

هذا يستخدم تطبيق app.yml الكل في واحد مع Discourse stable 3.3.2.

من app.yml:

UNICORN_SIDEKIQS: 9
DISCOURSE_SIDEKIQ_WORKERS: 5

أضفت هذا التكوين إلى المضيف أيضًا:

معلومات لوحة تحكم Sidekiq:


يبدو أن Redis غير قادر على تجاوز استخدام الذاكرة البالغ 1024 ميجابايت.

إذا كان لدى أي شخص أي أفكار، فسأكون ممتنًا! :meow_heart:

للمتابعة بشأن هذا الأمر، أواجه نفس المشكلة مع Jobs::PostAlert:

مع هذه المهام التي غالبًا ما تستغرق ما يصل إلى 15 دقيقة عند استخدام 4 من عمال Sidekiq مع 5 (افتراضي) خيوط مع الاختبار الحالي. يبدو أن سرعة المهام في الثانية لـ Sidekiq تعتمد بشكل كبير على عدد هذه المهام التي يتم تشغيلها في وقت واحد وعدد الخيوط المتاحة للمهام الأخرى.

زيادة عدد عمال Sidekiq إلى 6 أو أعلى (5 خيوط) ستزيد من سرعة مسح قائمة الانتظار، ولكن قاعدة بيانات postgres ستتعطل بانتظام (أفترض بسبب تشغيل عدد كبير جدًا من مهام Jobs::PostAlert في وقت واحد).

هذا على الإصدار المستقر 3.3.2. يبدو أن التغييرات والإصلاحات من الموضوع المرتبط قد تم تنفيذها بالفعل في الإصدار 3.3.2، إذا لم أكن مخطئًا.

لا ينبغي أن يتعطل Postgres ويشير بشكل عام إلى خطأ في Postgres أو نوع من المشاكل الأكبر.

هل لديك سجلات؟

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

هل قمت بإعادة تشغيل الخادم منذ إجراء تغييرات تكوين النواة؟

ربما

lscpu

سيكون مفيدًا أيضًا

لا يجب عليك أبدًا زيادة UNICORN_SIDEKIQS إلى هذا الحد، وزيادة العمال فقط ولكن

لا ينبغي أن يحدث هذا أبدًا.

الاحتمالات هي:

  1. أنت مقيد بالموارد لأن إما
    أ) موقعك قد تجاوز موارد الخادم
    ب) أنت تسيء تخصيص الموارد
  2. هناك خطأ ما في المكدس

أود أن أبدأ بـ

UNICORN_SIDEKIQS: 1
DISCOURSE_SIDEKIQ_WORKERS: 20

مما يجب أن يحرر بعض ذاكرة الوصول العشوائي من الخادم الخاص بك.

لمزيد من المعلومات، ستحتاج إلى تشغيل الوظائف المخالفة في وحدة تحكم PostgreSQL والإبلاغ عن عنق الزجاجة.