Βελτιστοποίηση εκκίνησης OPcache PHP

Για ιστότοπους που βασίζονται σε WordPress , Joomla ή Laravel , για παράδειγμα, και δεν έχουν περιεχόμενο για συγκεκριμένο χρήστη, συνιστάται να διατηρείτε όλες τις σελίδες σε μια στατική προσωρινή μνήμη HTML και να δημιουργείτε μόνο την προσωρινή μνήμη (ή αυτόματα) όταν πραγματοποιούνται αλλαγές στο backend. Ωστόσο, εάν η σελίδα περιέχει δυναμικό περιεχόμενο που εξαρτάται από περιόδους σύνδεσης και cookie ή επίσης από τη γλώσσα και την τοποθεσία, το OPcache είναι κατάλληλο .


Ο λεγόμενος χρόνος εκκίνησης και για τα τρία συστήματα που αναφέρονται είναι πάνω από 100 ms με έναν πρόσφατα εγκατεστημένο διακομιστή CentOS7 (με SSD και PHP 7.1) Κάθε φορά που εκτελείται ένα σενάριο PHP, πρέπει να μεταγλωττίζεται σε bytecode κατά το χρόνο εκτέλεσης. Το OPcache εφαρμόζει τώρα μια προσωρινή μνήμη για αυτόν τον bytecode - εάν το ίδιο σενάριο PHP εκτελείται με το επόμενο αίτημα, δεν χρειάζεται να μεταγλωττιστεί εκ νέου. Μετά την ενεργοποίηση του OPcache, ορίσαμε τις ακόλουθες ρυθμίσεις:

9006cec6c5d3d2498ee26c5bfd91590a

Ο χρόνος εκτέλεσης (κατά μέσο όρο πάνω από 10 εκτελέσεις) έχει πλέον μειωθεί σημαντικά:

WordPress 4.7.4 Joomla 3.7 Laravel 5.4
χωρίς OPcache 295 ms 201 χιλ 110 ms
με OPcache 54 χιλ 59 ms 13 ms
Παράγοντας 5,5 3,5 8,5

Εφόσον ορίζουμε validate_timestamps σε 0 και ταυτόχρονα revalidate_freq σε διάρκεια μίας ημέρας, η προσωρινή μνήμη σχεδόν ποτέ δεν ξαναχτίζεται αυτόματα (το κάνουμε συνειδητά αυτό χειροκίνητα). Με ένα μικρό γάντζο git , ένα σενάριο PHP εκτελείται με κάθε "έλξη". Πώς να ενεργοποιήσετε το γάντζο:

a1678610c8b4c7db5997375944183830

a1678610c8b4c7db5997375944183830

Η ακόλουθη λειτουργία βοηθού είναι επίσης χρήσιμη για τη μέτρηση μεμονωμένων τμημάτων κώδικα (ή ολόκληρου του χρόνου εκτέλεσης):

085f4291bbcc4e8a64bbea951ff49ab9

Εάν θέλετε να λάβετε χρήσιμες πληροφορίες όπως κατάσταση, χρησιμοποιημένη μνήμη ή αποθηκευμένο αριθμό αρχείων, χρησιμοποιείτε αυτήν τη λειτουργία PHP:

3f6309d04bc7e48dd909859321b96209

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

Το OPcache είναι ενεργό σε όλους τους διακομιστές που έχουν εγκατεστημένη τη λειτουργική μονάδα OPcache και στους οποίους η ρύθμιση opcache.enable δεν έχει ρυθμιστεί ρητά. Το αφήνουμε έτσι. Ορίζουμε μόνο το opcache.validate_timestamps = 1 στο php.ini. Αυτό σημαίνει ότι το opcache.revalidate_freq = 2. Επιτυγχάνουμε ότι το OPcache επανεπικυρώνεται σχεδόν συνεχώς με κάθε έργο. Για εκείνα τα έργα στα οποία θέλουμε να ενεργοποιήσουμε μόνιμα το OPcache, χρησιμοποιούμε σχετικές με το έργο στην .htaccess την ακόλουθη ρύθμιση:

1dd64a3f2fe4425b29b1409410fe3fc0

Στη συνέχεια, κάνουμε επανεκκίνηση του διακομιστή ιστού και δημιουργήσουμε το ακόλουθο σενάριο:

91fb5289160e410607c9ea89112a575b

Αυτό το σενάριο διαγράφει την προσωρινή μνήμη και την αναδημιουργεί ταυτόχρονα. Τώρα ορίζουμε μια εντολή RunOnSave που σχετίζεται με το χώρο εργασίας στον αγαπημένο μας επεξεργαστή VSCode:

91fb5289160e410607c9ea89112a575b

Πίσω