Drupal - علاقة حقول CCK وأنواع المحتوى بالأداء؟

StackOverflow https://stackoverflow.com/questions/1230940

  •  22-07-2019
  •  | 
  •  

سؤال

أنا أساعد شخصًا ما في تثبيت Drupal 6، وهو منزعج جدًا من أداء الموقع، على الرغم من أنه في مرحلة تحديد أنواع المحتوى فقط.يمكن أن يستغرق مجرد تحميل قائمة الوحدات أكثر من 30 ثانية، بينما يستغرق استيراد نوع المحتوى ما يقرب من 3 دقائق.

تم تثبيت هذا على نظام UNIX مشترك كبير، وأنا أقوم بتشغيل عمليات تثبيت D6 أخرى على نفس الخادم دون أي مشاكل حقيقية (بعض البطء، ولكن لا شيء بهذا السوء).قضيت بعض الوقت بعد ظهر هذا اليوم في تعطيل جميع الوحدات غير الأساسية على الموقع، وتمكنت من تقليل وقت تحميل صفحة قائمة الوحدات إلى حوالي 5 ثوانٍ.عندما قمت بإعادة تمكين مجموعات من الوحدات، بدا أن المجموعة التي حققت أعلى أداء هي عائلة وحدات CCK (زيادة قدرها 15-20 ثانية في وقت تحميل الصفحة لقائمة الوحدات).

مرة أخرى، لدي مواقع أخرى على هذا الخادم تعمل أيضًا على تشغيل CCK (ومعظم الوحدات الأخرى نفسها) ولا تواجه أي شيء مثل هذا.والفرق الرئيسي هو أن هذا الموقع البطيء للغاية يحتوي على عدد كبير من أنواع المحتوى وحقول CCK المحددة - 46 نوعًا منفصلاً من المحتوى و162 حقل CCK.

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

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

هو موضع تقدير أي توجيه!

شكرا بول

هل كانت مفيدة؟

المحلول

أولا:تعد صفحة الوحدات وحشًا شريرًا بالفعل، حيث تقوم بمسح جميع ذاكرات التخزين المؤقت الداخلية في Drupal بالكامل وإعادة بنائها للتأكد من أن الوحدات المثبتة حديثًا تحتوي على أحدث البيانات.إنه ليس مؤشرًا جيدًا لأداء الموقع (نظرًا لأن المهام الإدارية المحددة فقط هي التي تقوم عادةً بمسح هذه الأنواع من ذاكرات التخزين المؤقت)، على الرغم من أنها مزعجة.

ثانية:يؤدي استيراد أنواع المحتوى أيضًا إلى مسح ذاكرات التخزين المؤقت هذه، لأن CCK يريد التأكد من تحديث كل شيء أيضًا.إنه دون المستوى الأمثل، ولكن هذا هو الحال.

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

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

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top