Back to Question Center
0

WordPress MySQL Semalt

1 answers:

Έχω μια ιστοσελίδα (www. americanbankingnews. com) που έχει σήμερα 40.000-50.000 προβολές σελίδων. Αυτή τη στιγμή κάθεται σε ένα dedicated quad-core server Xeon με 8GB ram. Ο ιστότοπος τροφοδοτείται από WordPress και MySQL (που κάθονται στον ίδιο διακομιστή) και χρησιμοποιώ αυτήν τη στιγμή W3 Total Cache για σελίδα και ερώτημα MySQL Caching.

Δυστυχώς, αυτό δεν φαίνεται να αρκεί. Οι χρόνοι κυκλοφορίας αιχμής του Semalt, οι διακομιστές μου λαμβάνουν μερικά σφάλματα HTTP 500 και σελίδες που δεν αποθηκεύονται προσωρινά στη προσωρινή μνήμη.

Δεν χρησιμοποιώ αυτήν τη στιγμή το Semalt ή άλλα εργαλεία cache / acceleration PHP.

Υπάρχουν πρόσθετα βήματα που πρέπει να λάβω για να προσπαθήσω να βελτιστοποιήσω την απόδοση MySQL και PHP; Ή θα πρέπει να περάσω για ένα επιπλέον διακομιστή. Semalt, θα ήθελα να ενδιαφέρονται για πρόσθετες προτάσεις για τη βελτίωση της απόδοσης της MySQL και για το αν θα μπορούσαν να βοηθήσουν ή όχι εργαλεία όπως το xcache σε αυτή την κατάσταση.

February 7, 2018

Πριν από τον εαυτό σας με το μηχάνημα, έχετε κάνει έναν εμπεριστατωμένο έλεγχο των plugins, templates, κ.λπ.Ακόμη?

Έχω έναν πελάτη στην περιοχή 30-40k / day σε έναν κοινό κεντρικό υπολογιστή, με ένα μεγάλο μέρος του ιστότοπου που απαιτεί την αναγνώριση της ταυτότητας (έτσι δεν μπορούμε να κάνουμε αρκετά "στατικά" "SuperCaching"), και δεν έχουν ακόμα να παρουσιάσουν σημαντικές καταγγελίες απόδοσης.

Εάν κάνετε μάσημα μέσα από ένα ειδικό μηχάνημα με μόνο άλλες ~ 10k επισκέψεις, ίσως να συμβαίνει κάτι περισσότερο από ένα απλό διακομιστή.

Η APC (Εναλλακτική προσωρινή μνήμη PHP) θα βοηθούσε στην εξοικονόμηση κύκλων CPU, καθώς αποθηκεύει κώδικα PHP που έχει ήδη δημιουργηθεί. Αυτό σημαίνει ότι σε κάθε φόρτωση σελίδας, τα αρχεία PHP δεν καταρτίζονται πρώτα και στη συνέχεια εκτελούνται από την εικονική μηχανή, πηγαίνουν κατ 'ευθείαν στην εικονική μηχανή PHP και η αύξηση της απόδοσης είναι σημαντική (Έχω δει αυξημένη απόδοση από 2 έως 12 φορές).

Το επόμενο βήμα θα ήταν η βελτιστοποίηση της MySQL. Το προφανές βήμα είναι να ελέγξετε αν χρησιμοποιείτε το InnoDB ή όχι. Αυξάνοντας το InnoDB buffer_pool_size σε περίπου 90% της μνήμης RAM θα ​​καταστήσει το σύνολο δεδομένων MySQL να λειτουργεί με απευθείας σε RAM, οπότε ο δίσκος IO θα αποφεύγεται όσο το δυνατόν περισσότερο.

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

Αυτό πιθανώς απαιτεί κάποια εργασία (ή μπορεί να υπάρχει ένα WordPress mod έξω εκεί, δεν είμαι πραγματικά βέβαιος γιατί δεν είμαι τόσο φαινομενικός με το WP και τα plugins του). Η προσωρινή αποθήκευση του περιεχομένου σας θα ελαττώσει το φορτίο στη βάση δεδομένων σας. 40k - 50k εμφανίσεις ημερησίως συνεπάγεται υψηλό ρυθμό ανάγνωσης, ώστε να βελτιστοποιήσετε την ανάγνωση αντί να γράψετε.

Επίσης, μπορείτε να εξετάσετε την εναλλαγή σε nginx αντί να μείνετε με το Apache και χρησιμοποιώντας PHP FPM με nginx. Αυτό θα πρέπει να ενισχύσει την απόδοσή σας με τεράστιο περιθώριο.

Χωρίς να βλέπετε τι πραγματικά φορτώνει το διακομιστή σας (η εικασία μου είναι ότι η Apache γεννά πολλές διαδικασίες που συχνά έχουν πρόσβαση στην MySQL), αυτά είναι τα μόνα πράγματα που ξεχωρίζουν στο σημείο αυτό.

Για έναν ιστότοπο με μεγάλη επισκεψιμότητα, πρέπει να συντονίσετε όλα τα buffers MySQL για το περιεχόμενο που υπάρχει τώρα. Ανεξάρτητα από την έκδοση του WordPress, το στρώμα MySQL μπορεί να έχει υπολογιστικές διαστάσεις .

Στην πραγματικότητα, αν έχετε InnoDB δεδομένα χωρίς να ενεργοποιήσετε το innodb_file_per_table, θα πρέπει να καθαρίσετε το InnoDB διαιρώντας κάθε πίνακα στον δικό του φυσικό χώρο tablespace . Είναι δυνατό να κάνετε αξιοπρεπή ρύθμιση του MySQL ακόμα κι αν έχετε περιορισμένο υλικό . Υπάρχουν πολλά σενάρια για τέτοιες βελτιστοποιήσεις InnoDB .

IMHO, δεν μπορείτε να σχεδιάσετε καλές ρυθμίσεις για το δικό μου. cnf χωρίς να γνωρίζετε την ποσότητα των δεδομένων που θέλετε να διαμορφώσετε. Θα χρειαστεί να τοποθετείτε περιοδικά ένα τρέχον σύνολο δεδομένων από την παραγωγή σε ένα περιβάλλον σταδιοποίησης, να πραγματοποιείτε βελτιστοποιήσεις και να ξεφεύγετε από τους αριθμούς που θέλετε να διαμορφώσετε στο δικό μου. cnf του διακομιστή παραγωγής.

Ίσως θελήσετε επίσης να εξετάσετε αν η προσωρινή αποθήκευση γίνεται σωστά. Είχα μια ματιά στην αρχική σελίδα σας και ήρθε με αυτά τα σημεία -

  1. οι περισσότερες από τις μικρογραφίες σας αναπροσαρμόζονται από ένα σενάριο php και εξυπηρετούνται μόνο μέσω του διακομιστή σας. Θα μπορούσατε να προσπαθήσετε να σώσετε αυτό το γενικό κόστος.
  2. Αν έχετε επαναλάβει τους επισκέπτες (που θα πρέπει να είναι η περίπτωση που εξετάζετε το περιεχόμενό σας), τότε θα πρέπει να εφαρμόσετε την προσωρινή αποθήκευση του προγράμματος περιήγησης για να μειώσετε τα αιτήματα στον διακομιστή σας.
  3. Εκτελείτε έναν τόνο javascripts (διαφημίσεις, αναλυτικά στοιχεία κ.α.). μπορείτε να τους αναβάλλετε και να βεβαιωθείτε ότι και το js τους είναι αποθηκευμένο στο cache.
WordPress MySQL Semalt
Reply