مرحبًا يا أصدقاء،
بدأنا نلاحظ حدوث مهلة زمنية (timeouts) بشكل منتظم في استعلام /search الخاص بنا. قمنا باختبار بعض مصطلحات البحث، وقد تستغرق بعض الاستعلامات ما يصل إلى دقيقتين لإكمالها. لقد عثرنا على هذا المقال، لكننا نتساءل عما إذا كانت هناك توصيات إضافية حول كيفية التعامل مع هذه المشكلة. إليك بعض المعلومات ذات الصلة بحالتنا الخاصة:
- أكبر موقع لدينا (الموقع الذي يحدث فيه تجاوز الوقت بشكل متكرر أكثر) يحتوي على حوالي 1,700,000 منشور.
- نحن نستخدم إعدادات autovacuum الافتراضية لـ PostgreSQL. قمنا بجمع بعض الإحصائيات حول الجداول ذات الصلة:
categories،posts،topics،post_search_data، وusers، وتبين أنها تخضع لعملية vacuum مرة واحدة يوميًا تقريبًا، لذا لا نعتقد أن هذا يتعلق بصفوف ميتة تبطئ عملية البحث لدينا. - قمنا بتشغيل
Jobs::ReindexSearch.new({})يدويًا، لكننا لم نلاحظ أي تحسن ملحوظ.
نحن نفكر في تشغيل أمر rake search:reindex على هذا الموقع، وهو أمر نعلم مسبقًا أنه سيستغرق وقتًا طويلاً، لكننا نتساءل عما إذا كان لديك أي اقتراحات أخرى؟
شكرًا مسبقًا