Κατά τη διάρκεια των διακοπών της Πρωτομαγιάς, η ομάδα εξυπηρέτησης αναβάθμισε το περιβάλλον διακομιστή του ιστότοπου Yitaobang, από PHP5.3 σε PHP5.6, και μετά την επιτυχή αναβάθμιση, η CPU του διακομιστή ανατινάχθηκε σε περισσότερο από 90%, το οποίο παρέμεινε υψηλό. Ελέγξτε τον διακομιστή και διαπιστώστε ότι πολλές διεργασίες PHP-FPM προκαλούν το φορτίο της CPU να είναι πολύ υψηλό, με αποτέλεσμα να μην είναι δυνατή η κανονική πρόσβαση στον ιστότοπο. Η επανεγκατάσταση του περιβάλλοντος διακομιστή και της έκδοσης PHP πολλές φορές, ακόμη και η αλλαγή της PHP σε HHVM δεν μπορεί να λύσει το πρόβλημα του υψηλού φορτίου της CPU.
Διαδικασία λειτουργίας διακομιστή E-Taobang (διάγραμμα αρχιτεκτονικής υπηρεσίας): Πελάτης χρήστη → Ανάλυση ονόματος τομέα → Baidu Cloud Acceleration Node (επιθέσεις CDN/caching/anti-DDOS/CC) → κόμβος Alibaba Cloud Shield (επιθέσεις anti-CC/DDOS/WAF) → διακομιστής πηγής ECS (CSS, JS και εικόνες για εκτροπή CDN) και το Alibaba Cloud Cloud Shield δεν έχει πληροφορίες επίθεσης, επομένως μπορεί να αποκλειστεί εντελώς ως επίθεση.
Κοιτάζοντας τα αρχεία καταγραφής nginx, τα αρχεία καταγραφής php-fpm και τα αργά αρχεία καταγραφής, δεν υπάρχουν μη φυσιολογικοί παράγοντες και βλέπω πολλές TIME_WAIT πληροφορίες από την εντολή netstat -n, η οποία προκαλείται από το τμήμα IP του 100.97.x.x (το τελευταίο τμήμα IP είναι η διεύθυνση IP της υπηρεσίας ακρόασης Alibaba Cloud SLB).
Χωρίς περαιτέρω καθυστέρηση, ας μιλήσουμε για τη συγκεκριμένη λύση, την οποία τελικά χειρίστηκε η επαγγελματική ομάδα λειτουργίας και συντήρησης του Yitao Gang (V Station Power) και το τελικό αποτέλεσμα ήταν ότι το φορτίο της CPU που προκλήθηκε από τις ρυθμίσεις παρακολούθησης υπηρεσιών του SLB ήταν πολύ υψηλό. Η αρχική υπηρεσία SLB ακούει τη θύρα πρωτοκόλλου HTTP 80 και ο έλεγχος υγείας του πρωτοκόλλου http θα στέλνει τακτικά αιτήματα http από πολλές κεφαλές, με αποτέλεσμα τη συνεχή πρόσβαση για ανάγνωση HTTP, με αποτέλεσμα το php-fpm να προκαλεί το φορτίο της CPU να φτάσει περισσότερο από 90% για μεγάλο χρονικό διάστημα και το συγκεκριμένο όριο χρήσης φορτίου CPU εξαρτάται από τη διαμόρφωση του ECS. Μετά την αλλαγή της υπηρεσίας ελέγχου υγείας, η χρήση της CPU τίθεται εκτός σύνδεσης.
Εάν παρουσιαστεί και αυτή η κατάσταση, αλλάξτε τη διαμόρφωση ελέγχου εύρυθμης λειτουργίας της ακρόασης υπηρεσίας SLB από πρωτόκολλο HTTP 80 σε διαμόρφωση πρωτοκόλλου TCP 80 ως εξής:
|