ضبط الأداء
تساعد إعدادات الأداء على تحسين تشاميلو لتحميل الصفحات بشكل أسرع واستغلال أفضل للموارد، خاصة على المنصات ذات عدد كبير من المستخدمين المتزامنين.
مرجع إضافي: تتضمن تثبيتك لتشاميلو دليل تحسين موسّع. افتح
/documentation/optimization.htmlفي المتصفح (مثلاًhttps://your-chamilo-site/documentation/optimization.html) للاطلاع على توصيات على مستوى الخادم خاصة بإصدارك.
ذاكرة Symfony المؤقتة
تشاميلو 3.0 مبني على Symfony، الذي يستخدم ذاكرة مؤقتة مُجمَّعة للتوجيه وحقن التبعيات والقوالب. إدارة هذه الذاكرة المؤقتة ضرورية للأداء.
مسح الذاكرة المؤقتة
بعد تغييرات الإعداد أو النشر أو الترقيات، امسح ذاكرة Symfony المؤقتة:
# Clear cache for the current environment
php bin/console cache:clear
# For production environments specifically
php bin/console cache:clear --env=prodفي الإنتاج، تأكد دائماً من تعيين APP_ENV=prod في ملف .env.local. بيئة التطوير (APP_ENV=dev) تتضمن عبئاً كبيراً للتصحيح ولا ينبغي استخدامها أبداً في الإنتاج.
تسخين الذاكرة المؤقتة
بعد مسح الذاكرة المؤقتة، سخّنها مسبقاً لتجميع القوالب والإعداد مسبقاً:
php bin/console cache:warmup --env=prodاستراتيجيات التخزين المؤقت
OPcache
ذاكرة الرموز التشغيلية المدمجة في PHP. تأكد من تفعيلها في php.ini بذاكرة كافية (opcache.memory_consumption=256). هذا هو التحسين الأكثر تأثيراً على الأداء.
APCu
ذاكرة مؤقتة للمفاتيح والقيم في الذاكرة يستخدمها Symfony لتخزين البيانات الوصفية. ثبّت إضافة APCu لـ PHP واضبطها في إعداد ذاكرة Symfony المؤقتة.
Redis / Memcached
للمنصات عالية الحركة، اضبط خلفية تخزين مؤقت خارجية. عيّن محوّل الذاكرة المؤقتة في config/packages/cache.yaml.
إعدادات OPcache الموصى بها
عندما تُضبط validate_timestamps على 0، يجب مسح OPcache بعد نشر شيفرة جديدة (إعادة تشغيل PHP-FPM أو استدعاء opcache_reset()).
التحميل الكسول
تحميل الصور كسولاً
يفعّل السمة loading="lazy" على الصور بحيث تُحمَّل الصور خارج الشاشة فقط عند التمرير إليها. يقلل زمن التحميل الأولي للصفحة.
تحميل JavaScript المؤجَّل
تحميل ملفات JavaScript غير الحرجة بشكل غير متزامن لتجنب حظر عرض الصفحة.
CDN (شبكة توصيل المحتوى)
للمنصات التي تخدم مستخدمين عبر مناطق جغرافية متعددة، يمكن لـ CDN تحسين أزمنة التحميل للأصول الثابتة (CSS وJavaScript والصور) بشكل كبير.
لضبط CDN:
أنشئ توزيع CDN (مثلاً CloudFront أو Cloudflare أو مزوّد آخر) يشير إلى خادم تشاميلو.
اضبط عنوان URL الأساسي للأصول في بيئتك أو إعداد Symfony بحيث تُقدَّم الأصول الثابتة عبر CDN.
عيّن ترويسات تخزين مؤقت مناسبة للملفات الثابتة (انتهاء صلاحية طويل للأصول ذات الإصدارات).
تحسين قاعدة البيانات
استخدام تجميع اتصالات قاعدة البيانات
للمنصات عالية التزامن، اضبط تجميع الاتصالات لتقليل عبء إنشاء اتصالات قاعدة البيانات.
تحسين الاستعلامات
يتضمن تشاميلو فهارس قاعدة بيانات للاستعلامات الشائعة. نفّذ ANALYZE TABLE دورياً على MySQL/MariaDB لإبقاء إحصاءات مخطِّط الاستعلامات محدَّثة.
خادم قاعدة بيانات منفصل
للتركيبات الكبيرة، شغّل قاعدة البيانات على خادم مخصص بدلاً من مشاركة الموارد مع خادم الويب.
إعداد خادم الويب
تفعيل ضغط gzip/brotli
ضغط استجابات HTML وCSS وJavaScript. تدعم معظم خوادم الويب ذلك أصلاً.
التخزين المؤقت للملفات الثابتة
عيّن ترويسات Cache-Control وExpires طويلة للأصول الثابتة.
ضبط PHP-FPM
اضبط pm.max_children وpm.start_servers وpm.max_requests حسب الذاكرة العشوائية المتاحة والتزامن المتوقع.
HTTP/2
فعّل HTTP/2 في خادم الويب للاتصالات المتعددة وضغط الترويسات.
نصائح
OPcache هو المكسب الأكبر بمفرده -- تأكد من تفعيله وحجمه المناسب قبل متابعة تحسينات أخرى.
لا تشغّل الإنتاج أبداً مع
APP_ENV=dev-- شريط التصحيح والمحلّل يضيفان عبئاً كبيراً على كل طلب.راقب قبل الضبط -- استخدم أدوات مثل New Relic أو Blackfire أو محلّل Symfony المدمج (في وضع التطوير) لتحديد الاختناقات الفعلية بدلاً من التخمين.
سخّن الذاكرة المؤقتة بعد كل نشر لتجنب أن يصطدم أول مستخدم بطلب بطيء غير مخزَّن مؤقتاً.
آخر تحديث
هل كان هذا مفيدا؟