لذا أواجه مشكلة مع Sidekiq.
يعمل بسرعة مذهلة في معالجة الوظائف عند مراقبته عبر واجهة Sidekiq الويب. لكن في بعض الأحيان يبدو أنه يُغمر بالطلبات ويبدأ في العمل ببطء شديد. يعمل بنسبة 1-5% تقريبًا من سرعته العادية ولا يتعافى إلا بعد تفريغ Redis، على الرغم من أن استخدام موارد الخادم طبيعي/منخفض.
يبدو أنه بمجرد وصول الطابور إلى حجم معين، يتجمد ويتباطأ بشكل كبير. مما يتسبب في نمو الطابور أكثر. أنا مجرد أخمن هنا، ربما يكون الطابور كبيرًا فقط لأنه تباطأ لسبب آخر.
يصف هذا GIF ما يبدو عليه الأمر بالنسبة لي.
هناك وفرة من موارد الخادم المتاحة، واستخدام المعالج منخفض جدًا حاليًا - أقل من 10%. كما تتوفر ذاكرة عشوائية (RAM) وقرص SSD بكثرة. فيما يتعلق بالخادم، فهو يحتوي على 16 نواة مع 32 خيطًا. لقد جربت تشغيل ما بين 8-14 عملية unicorn_sidekiq. كما جربت 20، لكن ذلك أدى إلى ظهور العديد من أخطاء 5xx.
تمكنت من تسريع الوظائف البطيئة المعروضة في علامة التبويب ‘Busy’ في واجهة Sidekiq الويب باستخدام
Could sidekiq queue be reason for 500 errors? - #30 by bartv (
بإضافة ‘vm.overcommit_memory = 1’ إلى ملف /etc/sysctl.conf وإعادة تشغيل النظام) وكذلك تقليل عدد unicorn_sidekiqs إلى 8 (من 12).
ما زال يعمل ببطء. لقد لاحظت هذا في سجل Redis أمس (كان التحذير الوحيد الآخر يتعلق بعدم ضبط overcommit_memory على 1، وهو ما قمت بتعديله أعلاه):
# WARNING: /proc/sys/net/core/somaxconn is set to the lower value of 128
^ هل قام أي شخص بحل هذا التحذير أعلاه؟
على أي حال، إذا كان لدى أي شخص أي أفكار حول ما قد يكون السبب و/أو الحل - فيرجى إخباري. سأقدر ذلك.
سيكون من الرائع حقًا حل هذه المشكلة حتى لا تتكرر مرة أخرى، بدلاً من مجرد تفريغ الطابور.
إليك لقطة شاشة لما أراه على لوحة تحكم Sidekiq:
وبعض لقطات الشاشة للوظائف تحت علامة التبويب Busy:
أيضًا، هل يعرف أحد ما إذا كان آمنًا استخدام هذا الخيار؟ حذف طابور الأولوية المنخفضة من واجهة Sidekiq الويب؟





