Κατά την ανάπτυξη ενός ιστότοπου χρησιμοποιώντας PHP, εάν ορισμένες δυναμικές σελίδες PHP είναι πολύ αργές στην πρόσβαση μετά την εκκίνηση, μπορούμε να αναλύσουμε το σημείο συμφόρησης του ιστότοπου μέσω αργών αρχείων καταγραφής php-fpm.
Η ρύθμιση αργού καταγραφής PHP-FPM μας επιτρέπει να δούμε ποιες διαδικασίες PHP είναι πολύ αργές και προκαλούν προβλήματα στον ιστότοπο.
Πρώτα, ελέγξτε όλες τις διεργασίες μέσω της εντολής top -c για να δείτε τη διεύθυνση του αρχείου διαμόρφωσης που φορτώθηκε από το php-fpm, όπως φαίνεται στο παρακάτω σχήμα:
Διαμόρφωση FPM
παράμετρος: -p, τροποποιήστε δυναμικά --πρόθεμα στη γραμμή εντολών
include=etc/php-fpm.d/*.conf για να περιέχει ένα ή περισσότερα αρχεία εάν υπάρχει glob(3) (η συνάρτηση glob() επιστρέφει ένα όνομα αρχείου ή κατάλογο που ταιριάζει με το καθορισμένο μοτίβο)
Το php-fpm φορτώνει ένα αρχείο υπο-διαμόρφωσης, $pool μεταβλητή μπορεί να χρησιμοποιηθεί σε οποιαδήποτε οδηγία και θα αντικαταστήσει το αντίστοιχο όνομα του χώρου συγκέντρωσης διεργασιών. Για παράδειγμα: εδώ[www]
Ενεργοποίηση αργών αρχείων καταγραφής
μπαίνω/usr/local/etc/php-fpm.dΤο αρχείο υπο-ρυθμίσεων, βρείτε το www.conf (ανάλογα με την πραγματική σας κατάσταση), η PHP 5.3.3 και οι νεότερες εκδόσεις ορίζονται ως εξής:
; Το χρονικό όριο για την εξυπηρέτηση ενός μεμονωμένου αιτήματος μετά το οποίο θα είναι ένα backtrace PHP ; στο αρχείο 'slowlog'. Η τιμή '0s' σημαίνει 'off'. ; Διαθέσιμες μονάδες: s(econds)(προεπιλογή), m(inutes), h(ours) ή d(ays) ; Προεπιλεγμένη τιμή: 0 request_slowlog_timeout = 1 δευτ. ; Το αρχείο καταγραφής για αργές αιτήσεις ; Προεπιλεγμένη τιμή: /usr/local/php/log/php-fpm.log.slow slowlog = /usr/local/php/log/php-fpm.log.slow ; Το χρονικό όριο για την προβολή μιας μεμονωμένης αίτησης, μετά το οποίο η διεργασία ; να σκοτωθεί. Αυτή η επιλογή θα πρέπει να χρησιμοποιείται όταν η επιλογή 'max_execution_time' ini ; δεν σταματά την εκτέλεση σεναρίου για κάποιο λόγο. Η τιμή «0» σημαίνει «απενεργοποίηση». ; Διαθέσιμες μονάδες: s(econds)(προεπιλογή), m(inutes), h(ours) ή d(ays) ; Προεπιλεγμένη τιμή: 0 request_terminate_timeout = 10 δευτ. Σημείωση: request_terminate_timeout Τερματίστε απευθείας μια διεργασία που εκτελείται για πολύ μεγάλο χρονικό διάστημα
request_slowlog_timeout Γράψτε αρχεία που είναι πολύ αργά για να εκτελεστούν στο αρχείο καταγραφής
Από εδώ και στο εξής, μπορείτε να βελτιστοποιήσετε τα αρχεία του προγράμματος σύμφωνα με το αρχείο καταγραφής αργής εκτέλεσης /usr/local/php/log/php-fpm.log.slow!
|