Μετάβαση στο περιεχόμενο
EuroVPSEuroVPS
Περιοχή πελατών

Πώς προετοιμάζουμε ένα ειδησεογραφικό site για μια αιχμή.

Η δουλειά ενός ειδησεογραφικού site είναι οι αιχμές. Αυτή είναι η μέθοδος με την οποία το ετοιμάζουμε: διαβάζουμε τα σωστά logs, ξέρουμε πού είναι το όριο, ελέγχουμε κάθε επίπεδο πριν ξοδέψουμε, και κάνουμε την αριθμητική.

Από EuroVPS EngineeringΤο μηχανοστάσιο

5 λεπτά ανάγνωσης
Σε αυτό το άρθρο 4 ενότητες
Εν συντομία
  • Η κίνηση αποκαλύπτει όρια. Η διαμόρφωση ορίζει τα όρια. Προετοιμασία για μια αιχμή σημαίνει να τα βρείτε πριν τα βρει το κοινό.
  • Πρώτα, επιβεβαιώστε ποιο log μεταφέρει πραγματικά την κίνηση του site. Ένα default log του server μπορεί να κρατά ένα μικρό μερίδιο, ενώ το log του vhost του ίδιου του site κρατά τα υπόλοιπα.
  • Ελέγξτε κάθε επίπεδο πριν ξοδέψετε. Η βάση δεδομένων είναι συχνά αδρανής και γρήγορη, ενώ η δουλειά στοιβάζεται ένα επίπεδο πιο πάνω.
  • Μετά η αριθμητική: workers διά δευτερόλεπτα ανά αίτημα είναι το πραγματικό σας όριο σε αιτήματα ανά δευτερόλεπτο. Διαστασιολογήστε το pool στην αιχμή που θα πετύχετε πραγματικά, συν περιθώριο.

Η δουλειά ενός ειδησεογραφικού site είναι οι αιχμές: όταν σκάει η είδηση, το κοινό φτάνει όλο μαζί. Η προετοιμασία γι' αυτό σπάνια είναι ζήτημα hardware. Είναι ζήτημα διαμόρφωσης: ο αριθμός των workers, τα timeouts, τα logs, η cache. Να πώς προετοιμάζουμε ένα.

Διαβάστε πρώτα το σωστό log

Η πρώτη πειθαρχία είναι να μετράτε σωστά. Σε έναν τυπικό web server το default log και το log του vhost του ίδιου του site είναι διαφορετικά αρχεία, και το default μπορεί να κρατά μόνο ένα μικρό μερίδιο της κίνησης. Διαστασιολογήστε οτιδήποτε από το λάθος log και το διαστασιολογείτε για λάθος φορτίο.

Μάθετε πού είναι το όριο

Υπό φορτίο, οι χρόνοι των αιτημάτων σάς λένε πού είναι το όριο. Η οργανική αργοπορία διασκορπίζεται: κάποια αιτήματα λίγο αργά, κάποια πολύ αργά. Αργά αιτήματα που συγκεντρώνονται ακριβώς στο timeout του gateway σημαίνουν ότι το επίπεδο πίσω από το gateway ξεμένει από workers μέσα στον προϋπολογισμό του. Αυτή είναι υπογραφή κορεσμού, και δείχνει κατευθείαν τη ρύθμιση που πρέπει να διαστασιολογηθεί.

ΠΩΣ ΜΟΙΑΖΕΙ ΕΝΑ ΟΡΙΟ · ΧΡΟΝΟΙ ΑΙΤΗΜΑΤΩΝ ΥΠΟ ΦΟΡΤΙΟ
Κάποια αιτήματα
γρήγορα
Λίγα
πιο αργά
Λίγα
αργά
Τα υπόλοιπα
όριο
Τα υπόλοιπα
όριο
Τα υπόλοιπα
όριο
Μια καθαρή κοπή σε έναν αριθμό είναι όριο, όχι σύμπτωση. Ενδεικτική απεικόνιση: ο άξονας δεν φέρει αριθμούς.

Ελέγξτε κάθε επίπεδο πριν ξοδέψετε

Πριν αγοράσει κανείς RAM ή αναβαθμίσει το επίπεδο δεδομένων, ελέγξτε το. Μια βάση δεδομένων που είναι αδρανής και γρήγορη, χωρίς αργά queries, που απαντά σε όλα τη στιγμή που ρωτιέται, δεν είναι το επίπεδο που πρέπει να διαστασιολογηθεί. Το επίπεδο που πρέπει να διαστασιολογηθεί είναι εκείνο του οποίου οι workers είναι όλοι απασχολημένοι. Αυτό το μοτίβο έχει δικό του άρθρο στο μικρότερα, όχι μεγαλύτερα.

Το όριό σας είναι αριθμητική

Ο ΜΟΝΟΣ ΤΥΠΟΣ ΧΩΡΗΤΙΚΟΤΗΤΑΣ ΠΟΥ ΜΕΤΡΑΕΙ ΕΔΩ

WORKERS

το μέγεθος του pool
÷

SEC / REQUEST

ο χρόνος που παίρνει ο καθένας
=

REQ / SEC

το πραγματικό σας όριο
Βάλτε τους δικούς σας αριθμούς. Αν η αιχμή σας θα φτάσει γρηγορότερα από αυτή την απάντηση, αλλάξτε το μέγεθος του pool πριν έρθει η μέρα. Χωρίς τιμές εδώ επίτηδες: ο τύπος είναι η μέθοδος.

Η προετοιμασία είναι διαστασιολόγηση, όχι ψώνια: το pool των workers υπολογισμένο από την αιχμή που θα πετύχει πραγματικά ένα ειδησεογραφικό site, συν περιθώριο, μέσα σε έναν μετρημένο προϋπολογισμό μνήμης ανά worker. Μετά ένα επίπεδο cache που σερβίρει stale περιεχόμενο όταν το backend αργεί, ώστε ένα απασχολημένο backend να υποβαθμίζεται σε ελαφρώς παλιές σελίδες αντί για σελίδες σφάλματος. Η πλατφόρμα απορροφά την αιχμή.

“Η κίνηση βρίσκει το όριο που ορίζετε. Ορίστε το επίτηδες.”

Ευθείες απαντήσεις

Γιατί ένα site βγάζει σφάλματα 502 υπό μεγάλη κίνηση;+

Συνήθως το επίπεδο πίσω από το gateway έχει ξεμείνει από workers και το gateway τα παρατάει στο timeout του. Η υπογραφή είναι αργά αιτήματα καρφωμένα ακριβώς σε έναν αριθμό. Μετρήστε πρώτα τα σφάλματα στο σωστό log του vhost, γιατί το default log μπορεί να κρατά μόνο ένα κλάσμα της κίνησής σας.

Πόσους workers πρέπει να έχει ο application server μου;+

Υπολογίστε το: workers διά μέσα δευτερόλεπτα ανά αίτημα είναι το όριό σας σε αιτήματα ανά δευτερόλεπτο. Διαστασιολογήστε για την αιχμή που θα πετύχετε πραγματικά συν περιθώριο, μέσα σε έναν μετρημένο προϋπολογισμό μνήμης ανά worker, αντί να εμπιστεύεστε την προεπιλογή του πακέτου.

Είναι η βάση δεδομένων το σημείο συμφόρησης όταν η κίνηση κορυφώνεται;+

Επαληθεύστε πριν ξοδέψετε. Ελέγξτε αν είναι αδρανής ή απασχολημένη και αν υπάρχουν αργά queries. Συχνά η βάση δεδομένων είναι αδρανής και γρήγορη, και η δουλειά στοιβάζεται ένα επίπεδο πιο πάνω. Ελέγξτε πρώτα κάθε επίπεδο.

Πώς προετοιμάζω ένα site για μια αιχμή επισκεψιμότητας;+

Κάντε την αριθμητική των workers με βάση τη ρεαλιστική αιχμή σας, επιβεβαιώστε ποια logs μεταφέρουν πραγματικά την κίνησή σας, κάντε load test μέχρι το υπολογισμένο όριο, και βάλτε μπροστά caching τύπου stale-on-error ώστε ένα αργό backend να σερβίρει παλιές σελίδες αντί για σφάλματα.

Δεν χρειάζεται απλώς περισσότερους servers η περισσότερη κίνηση;+

Τελικά ναι, αλλά σχεδόν ποτέ πρώτα. Πρώτα χρησιμοποιήστε τη χωρητικότητα που κρατά πίσω η διαμόρφωσή σας: σωστά διαστασιολογημένα pools, λογικά timeouts, caching που απορροφά την καταιγίδα αναγνώσεων. Hardware που αγοράζεται για να καλύψει μια ρύθμιση διαμόρφωσης είναι η πιο ακριβή αλλαγή config που υπάρχει.

Περιμένετε σύντομα την καλύτερη μέρα σας;

Λανσάρισμα, δημοσιότητα, εποχιακή αιχμή: φέρτε μας την ημερομηνία. Θα κάνουμε την αριθμητική των workers, θα διαβάσουμε τα σωστά logs, και θα κάνουμε την αιχμή απλώς ένα ακόμη γράφημα.

Μιλήστε με έναν μηχανικό

Φτάσατε στο τέλος.

Βάλτε την ανάγνωση σε εφαρμογή

Τι τρέχετε;

Πείτε μας για τον φόρτο εργασίας, την κίνηση και τις απαιτήσεις ανάκαμψης. Ξεκινήστε από το εργαλείο διαμόρφωσης server ή συζητήστε τις λεπτομέρειες με έναν μηχανικό.

Γραμμένο από τους μηχανικούς που χτίζουν και λειτουργούν την υποδομή που περιγράφει.
Μιλήστε με έναν μηχανικό
XIn

5 λεπτά ακόμη