WPML

شعرنا خلال الأشهر الماضية أن موقعنا – wpml.org – أصبح بطيئاً. في البداية، اتبعنا النهج القاسي المتمثل في ترقية الخادم. وعندما لم يجدِ ذلك نفعاً، ركزنا اهتمامنا وحللنا المشكلة فعلياً. والنتيجة هي إصدار اليوم، الذي قلل من حمل وحدة المعالجة المركزية (CPU) ووقت الاستجابة بنسبة 70%.

ما تعلمناه حول تحليل الأداء


لطالما كان الأداء مهماً جداً بالنسبة لنا. لقد كنا نختبر الذاكرة والاستعلامات ووقت وحدة المعالجة المركزية لـ WPML لسنوات حتى الآن ونعمل على تحسينه في كل إصدار. وما تعلمناه من جولة التطوير هذه هو أن الاختبارات الثابتة لا تكشف دائماً عن المشاكل الحقيقية.

الطريقة التي استخدمناها حتى الآن لاختبار الأداء كانت تتمثل في:

  • إنشاء قاعدة بيانات كبيرة تحتوي على العديد من المقالات والبيانات الوصفية للمقالات (postmeta) والتصنيفات والمستخدمين
  • إنتاج قائمة بالصفحات «الأثقل»
  • تحميلها عدة مرات، وقياس الوقت الذي تستغرقه للتحميل، وتحليلها

أظهر لنا هذا صفحات الواجهة الأمامية ولوحة التحكم التي نحتاج إلى تصحيح أخطائها وتحسينها. وقد حرصنا على تقليل عدد الاستعلامات، وتجنب الاستعلامات الطويلة، وكتابة تعليمات PHP برمجية فعالة.

إذن، ما الذي ينقصنا؟

يُعد WordPress وWPML أكثر تعقيداً بقليل من «طلب صفحة وانتظار تحميلها». فكل شيء يحدث عبر قاعدة البيانات، وهي مورد مشترك. ويمكن لشيء واحد يفعله الزائر (أ) بقاعدة البيانات أن يؤثر على التجربة التي يحصل عليها الزائر (ب).

لفهم نقاط الاختناق هذه، قمنا بتثبيت أداة تُسمى Appoptics على موقعنا المباشر. وقد أتاحت لنا قياس الوظائف والاستعلامات التي تستغرق وقتاً طويلاً، حتى نتمكن من تحليل السبب.

التحسن الفعلي في الأداء


وجدنا أن إحدى العمليات التي تبدو غير ضارة في ترجمة النصوص كان لها تعارض كبير في الموارد مع استعلام متكرر لجدول الخيارات من إضافة أخرى. إذا قمت بتشغيل هذا الاستدعاء مليون مرة فقط، فلن تشعر بأي مشكلة. ومع ذلك، عندما تحتاج صفحات أخرى إلى الوصول إلى جدول الخيارات، يتعين عليها الانتظار حتى تنتهي السلاسل النصية من الوصول إليه. وتنمو قائمة الطلبات المعلقة، وتفيض قاعدة البيانات، وتخرج الأمور عن السيطرة.
تحسن الأداء لموقع wpml.org

بالنظر إلى الرسم البياني، يمكنك أن ترى أن معظم جهد خادمنا ذهب إلى قاعدة البيانات (ذلك الجدول الذي ظل يُقفل ويُفتح). ويمكنك على الأرجح تخمين الوقت الذي طبقنا فيه الإصلاح.

ولكن لدي مشاكل أخرى في الأداء، هل يمكنك إصلاحها؟


إن ما اكتشفناه سيساعد بالتأكيد ليس فقط wpml.org بل العديد من المواقع المزدحمة الأخرى التي تستخدم WPML. وإذا كان لديك موقع ذو حمل صغير جداً، فبالكاد ستشعر بهذا التحسن. فهو يؤثر فقط على المواقع التي تشهد الكثير من التزامن وقيام الأشخاص بأشياء مختلفة عديدة.

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

بالمناسبة، لم تكشف جولة تحسين الأداء الخاصة بنا عن نقاط اختناق في WPML فقط. لقد أصلحنا ما وجدناه في WPML، لكننا لاحظنا مشاكل كبيرة في أماكن أخرى. قمنا بتصحيح بعضها بأنفسنا وحسّنا بعضها الآخر عبر قاعدة البيانات.

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

ما الجديد أيضاً في WPML 4.2.6

نواة WPML 4.2.6

  • إضافة المرشح wpml_post_edit_meta_box_priority لتغيير أولوية مربع البيانات الوصفية لتحرير المقالة في WPML
  • إصلاح مشكلة ترقية الإضافات في حالة التثبيت في مجلدات فرعية – باستخدام عناوين URL للموقع دائماً
  • حفظ الإشعارات فقط عند الحاجة لتقليل عمليات الكتابة الإضافية في جدول wp_options
  • إصلاح مشكلة أمنية في روابط مبدل اللغة

WPML ترجمة النصوص 2.10.4

  • إصلاح مشكلة في استيراد ملف mo الخاص بترجمة النصوص (ST) بحيث لا يتم تحديث جدول wp_option دون داعٍ

WPML إدارة الترجمة 2.8.5

  • تحسين تصميم عناصر التحكم في ترقيم الصفحات في صفحة مهام الترجمة
  • إصلاح مشكلة تعيين المترجمين في صفحة مهام الترجمة عندما تكون لغة لوحة التحكم مختلفة عن الإنجليزية
  • إصلاح المحتوى غير الصحيح لعمود «مترجم بواسطة» عندما تكون لغة لوحة التحكم مختلفة عن الإنجليزية

WPML Media Translation 2.5.2

  • حفظ الإشعارات فقط عند الحاجة لتقليل عمليات الكتابة الإضافية في جدول wp_options

WPML CMS Nav 1.5.1

  • تحسين الأداء عن طريق مسح ذاكرة التخزين المؤقت فقط عند الاقتضاء

التنزيل والتحديث


كما هو الحال دائماً، ستتلقى هذا التحديث تلقائياً لجميع مواقعك المسجلة. ويمكنك دائماً تسجيل الدخول إلى حساب WPML الخاص بك للتنزيل والتثبيت يدوياً.

نوصي بإجراء نسخ احتياطي قبل تحديث أي شيء في موقعك.

ملاحظات؟ أسئلة؟ اقتراحات؟


تعمل مواقعنا بشكل أسرع بكثير الآن، لكننا نود أن نسمع عن مواقعك. يُرجى ترك تعليقاتك وسنرد عليك.

هل وجدت هذا مفيداً؟ شارك هذه المقالة: