Sidekiq بطيء + Postmaster يستهلك أكثر من 95% من وحدة المعالجة المركزية (32 نواة) بعد ترقية إصدار PostgreSQL

حسنًا، للمتابعة، يبدو أن كل شيء على ما يرام؛ فقد هدأ postmaster بشكل كبير، ويعمل sidekiq بسرعة كبيرة مرة أخرى.

ملخص لما نجح في سيناريوهي (مع اسم قاعدة البيانات الافتراضي ‘discourse’):

cd /var/discourse/
./launcher enter app
sudo -u postgres psql
\c discourse

ثم من وحدة تحكم postgres، تم تنفيذ كل من الأوامر التالية. يستغرق كل أمر بعض الوقت للتنفيذ، اعتمادًا على حجم قاعدة البيانات، مع استهلاك عالي لمعالج CPU في الأمرين الأولين أيضًا:

VACUUM FULL VERBOSE;

REINDEX DATABASE discourse;

VACUUM VERBOSE ANALYZE;

ملاحظة: لم ألاحظ أي فرق حتى تم تنفيذ أمر VACUUM VERBOSE ANALYZE; كما أوصى @Falco، لذا قد لا يكون الأمران الأولان ضروريين. ومع ذلك، بدا أن الأمرين الأولين هما المفتاح لحل هذه المشكلة في الماضي في إصدار Postgresql السابق.

إذا حصلت على خطأ مثل ‘ERROR: deadlock detected’ أثناء تنفيذ REINDEX DATABASE discourse; - فحاول ببساطة تشغيله مرة أخرى حتى يعمل. حدث لي هذا في المرة السابقة (في إصدار Postgresql السابق).

هناك بعض التوصيات بتشغيل إعادة فهرسة متزامنة بدلاً من إعادة الفهرسة المذكورة أعلاه: PostgreSQL 12 update

ومع ذلك، لاحظ أن @eboehnisch المذكور أعلاه تلقى خطأً من إعادة الفهرسة المتزامنة، انظر أعلاه.