ضبط الأداء
تساعد إعدادات الأداء في تحسين Chamilo لتحميل الصفحات بشكل أسرع واستخدام أفضل للموارد، خاصة على المنصات التي تحتوي على العديد من المستخدمين المتزامنين.
مرجع إضافي: يتضمن تثبيت Chamilo دليل تحسين موسع. افتح
/documentation/optimization.htmlفي متصفح (مثلhttps://your-chamilo-site/documentation/optimization.html) للحصول على توصيات على مستوى الخادم الخاصة بإصدارك.
ذاكرة التخزين المؤقت لـ Symfony
يُبنى Chamilo 2.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 لتخزين البيانات الوصفية. قم بتثبيت امتداد PHP APCu وقم بتكوينه في إعدادات ذاكرة التخزين المؤقت لـ 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، أو مزود آخر) يشير إلى خادم Chamilo الخاص بك.
قم بتكوين عنوان URL الأساسي للأصول في بيئتك أو إعدادات Symfony بحيث يتم تقديم الأصول الثابتة عبر CDN.
قم بتعيين رؤوس تخزين مؤقت مناسبة للملفات الثابتة (انتهاء صلاحية طويل للأصول المرقمة بالإصدار).
تحسين قاعدة البيانات
استخدام تجميع اتصالات قاعدة البيانات
للمنصات ذات التزامن العالي، قم بتكوين تجميع الاتصالات لتقليل الحمل التشغيلي لإنشاء اتصالات قاعدة البيانات.
تحسين الاستعلامات
يتضمن Chamilo فهارس قاعدة بيانات للاستعلامات الشائعة. قم بتشغيل 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 المدمج (في وضع التطوير) لتحديد العوائق الفعلية بدلاً من التخمين.
سخّن الذاكرة المؤقتة بعد كل نشر لتجنب أن يصادف المستخدم الأول طلبًا بطيئًا غير مخزن مؤقتًا.
آخر تحديث
هل كان هذا مفيدا؟