For the complete documentation index, see llms.txt. This page is also available as Markdown.

Βελτιστοποίηση απόδοσης

Οι ρυθμίσεις απόδοσης βοηθούν στη βελτιστοποίηση του Chamilo για ταχύτερες φορτώσεις σελίδων και καλύτερη αξιοποίηση πόρων, ιδίως σε πλατφόρμες με πολλούς ταυτόχρονους χρήστες.

Πρόσθετη αναφορά: Η εγκατάσταση Chamilo περιλαμβάνει έναν εκτεταμένο οδηγό βελτιστοποίησης. Ανοίξτε το /documentation/optimization.html σε ένα πρόγραμμα περιήγησης (π.χ. https://your-chamilo-site/documentation/optimization.html) για συστάσεις σε επίπεδο διακομιστή ειδικές για την έκδοσή σας.

Symfony Cache

Το Chamilo 3.0 βασίζεται στο Symfony, το οποίο χρησιμοποιεί μεταγλωττισμένη cache για δρομολόγηση, έγχυση εξαρτήσεων και πρότυπα. Η διαχείριση αυτής της cache είναι απαραίτητη για την απόδοση.

Εκκαθάριση της Cache

Μετά από αλλαγές διαμόρφωσης, ανάπτυξη ή αναβαθμίσεις, εκκαθαρίστε την cache του 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) περιλαμβάνει εκτεταμένο επιπλέον φόρτο αποσφαλμάτωσης και δεν πρέπει ποτέ να χρησιμοποιείται στην παραγωγή.

Προθέρμανση Cache

Μετά την εκκαθάριση της cache, προθερμάνετέ την για προμεταγλώττιση προτύπων και διαμόρφωσης:

php bin/console cache:warmup --env=prod

Στρατηγικές Caching

Στρατηγική
Περιγραφή

OPcache

Η ενσωματωμένη cache opcode της PHP. Διασφαλίστε ότι είναι ενεργοποιημένη στο php.ini σας με επαρκή μνήμη (opcache.memory_consumption=256). Αυτή είναι η μοναδική βελτιστοποίηση απόδοσης με τον μεγαλύτερο αντίκτυπο.

APCu

Μια cache κλειδιού-τιμής στη μνήμη που χρησιμοποιείται από το Symfony για αποθήκευση μεταδεδομένων. Εγκαταστήστε την επέκταση PHP APCu και διαμορφώστε την στη διαμόρφωση cache του Symfony.

Redis / Memcached

Για πλατφόρμες υψηλής κίνησης, διαμορφώστε ένα εξωτερικό backend cache. Ορίστε τον προσαρμογέα cache στο config/packages/cache.yaml.

Συνιστώμενες ρυθμίσεις OPcache

Όταν το validate_timestamps έχει οριστεί σε 0, πρέπει να εκκαθαρίζετε την OPcache μετά την ανάπτυξη νέου κώδικα (επανεκκίνηση PHP-FPM ή κλήση opcache_reset()).

Καθυστερημένη φόρτωση (Lazy Loading)

Ρύθμιση
Περιγραφή

Lazy-load εικόνων

Ενεργοποιεί το χαρακτηριστικό loading="lazy" στις εικόνες ώστε οι εικόνες εκτός οθόνης να φορτώνονται μόνο όταν εμφανίζονται με κύλιση. Μειώνει τον χρόνο αρχικής φόρτωσης της σελίδας.

Αναβαλλόμενη φόρτωση JavaScript

Φόρτωση μη κρίσιμων αρχείων JavaScript ασύγχρονα ώστε να μην εμποδίζεται η απόδοση της σελίδας.

CDN (Content Delivery Network)

Για πλατφόρμες που εξυπηρετούν χρήστες σε πολλές γεωγραφικές περιοχές, ένα CDN μπορεί να βελτιώσει σημαντικά τους χρόνους φόρτωσης για στατικά στοιχεία (CSS, JavaScript, εικόνες).

Για να διαμορφώσετε ένα CDN:

  1. Ρυθμίστε μια διανομή CDN (π.χ. CloudFront, Cloudflare ή άλλον πάροχο) που να δείχνει στον διακομιστή Chamilo.

  2. Διαμορφώστε το βασικό URL στοιχείων στο περιβάλλον σας ή στη διαμόρφωση Symfony ώστε τα στατικά στοιχεία να εξυπηρετούνται μέσω του CDN.

  3. Ορίστε κατάλληλες κεφαλίδες cache για στατικά αρχεία (μεγάλη διάρκεια λήξης για στοιχεία με έκδοση).

Βελτιστοποίηση βάσης δεδομένων

Ενέργεια
Περιγραφή

Χρήση pooling συνδέσεων βάσης δεδομένων

Για πλατφόρμες υψηλής ταυτοχρονίας, διαμορφώστε pooling συνδέσεων ώστε να μειωθεί το κόστος δημιουργίας συνδέσεων βάσης δεδομένων.

Βελτιστοποίηση ερωτημάτων

Το Chamilo περιλαμβάνει ευρετήρια βάσης δεδομένων για κοινά ερωτήματα. Εκτελέστε περιοδικά ANALYZE TABLE σε MySQL/MariaDB ώστε τα στατιστικά του προγραμματιστή ερωτημάτων να παραμένουν ενημερωμένα.

Ξεχωριστός διακομιστής βάσης δεδομένων

Για μεγάλες εγκαταστάσεις, εκτελέστε τη βάση δεδομένων σε αποκλειστικό διακομιστή αντί να μοιράζεστε πόρους με τον διακομιστή ιστού.

Διαμόρφωση διακομιστή ιστού

Βελτιστοποίηση
Περιγραφή

Ενεργοποίηση συμπίεσης gzip/brotli

Συμπιέστε απαντήσεις HTML, CSS και JavaScript. Οι περισσότεροι διακομιστές ιστού το υποστηρίζουν εγγενώς.

Caching στατικών αρχείων

Ορίστε μεγάλες κεφαλίδες Cache-Control και Expires για στατικά στοιχεία.

Ρύθμιση PHP-FPM

Προσαρμόστε τα pm.max_children, pm.start_servers και pm.max_requests με βάση τη διαθέσιμη RAM και την αναμενόμενη ταυτοχρονία.

HTTP/2

Ενεργοποιήστε HTTP/2 στον διακομιστή ιστού για πολυπλεγμένες συνδέσεις και συμπίεση κεφαλίδων.

Συμβουλές

  • Η OPcache είναι το μεγαλύτερο μεμονωμένο όφελος -- Διασφαλίστε ότι είναι ενεργοποιημένη και σωστά διαστασιολογημένη πριν προχωρήσετε σε άλλες βελτιστοποιήσεις.

  • Μην εκτελείτε ποτέ την παραγωγή με APP_ENV=dev -- Η γραμμή εργαλείων αποσφαλμάτωσης και ο profiler προσθέτουν σημαντικό επιπλέον φόρτο σε κάθε αίτημα.

  • Παρακολουθήστε πριν ρυθμίσετε -- Χρησιμοποιήστε εργαλεία όπως New Relic, Blackfire ή τον ενσωματωμένο profiler του Symfony (σε λειτουργία dev) για να εντοπίσετε πραγματικά σημεία συμφόρησης αντί να μαντεύετε.

  • Προθερμάνετε την cache μετά από κάθε ανάπτυξη ώστε ο πρώτος χρήστης να μην συναντήσει ένα αργό αίτημα χωρίς cache.

Τελευταία ενημέρωση

Ήταν χρήσιμο αυτό;