Βελτιστοποιήστε την απόδοση της βάσης δεδομένων σας χρησιμοποιώντας τον διακομιστή Memcached με τις εφαρμογές PHP και Python
Εάν έχετε νιώσει ποτέ τον πόνο του υψηλού φόρτου της βάσης δεδομένων που προκαλεί την επιβράδυνση στις εφαρμογές ιστού σας και αναρωτηθήκατε "Υπάρχει τρόπος να μειώσετε τον λανθάνοντα χρόνο που προκαλείται από τα ερωτήματα DB;", τότε η απάντηση σε αυτήν την ερώτηση είναι ένα μεγάλο ναι. Το Memcached ένας φιλικός δαίμονας κρυφής μνήμης γειτονιάς είναι εδώ για να λύσει όλα τα δεινά σας! Η αποθήκευση στην κρυφή μνήμη του DB είναι μία από τις απλούστερες μεθόδους για να μειώσετε το φόρτο της DB και να επιταχύνετε τις δυναμικές εφαρμογές Ιστού.
Το Memcached αυτοπροσδιορίζεται ως υψηλής απόδοσης, κατανεμημένο σύστημα αποθήκευσης αντικειμένων μνήμης, γενικής φύσης, αλλά αρχικά προοριζόταν για χρήση στην επιτάχυνση δυναμικών εφαρμογών Ιστού μειώνοντας το φόρτο της βάσης δεδομένων. Αναπτύχθηκε από τον Brad Fitzpatrick για τον ιστότοπό του LiveJournal το 2003.
Σε αυτό το άρθρο, θα εξετάσουμε τον τρόπο εγκατάστασης και ρύθμισης παραμέτρων του Memcached στο Ubuntu 20.04 και θα εξετάσουμε τους πελάτες του για συγκεκριμένη γλώσσα.
Προαπαιτούμενα
Ένα σύστημα εγκατεστημένο με το Ubuntu 20.04 με χρήστη με δικαιώματα διαχειριστή, δηλαδή α sudo
χρήστης.
Εγκατάσταση
Το Memcached είναι διαθέσιμο στο επίσημο αποθετήριο του Ubuntu 20.04, εκτός από το Memcached θα εγκαταστήσουμε επίσης ένα εργαλείο CLI γνωστό ως libmemcached-tools
για τη διαχείριση του Memcached. Απλώς εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε και τα δύο
sudo apt εγκατάσταση memcached libmemcached-tools
Επαληθεύστε την εγκατάσταση
Μετά την ολοκλήρωση της εγκατάστασης, ο δαίμονας Memcached ξεκινά από μόνος του στο παρασκήνιο. Για να επαληθεύσουμε την εγκατάσταση, μπορούμε να χρησιμοποιήσουμε μια εντολή από libmemcached-tools
πακέτο για λήψη στατιστικών στοιχείων διακομιστή Memcached. Είτε τρέξτε
memcstat -- servers localhost
ή
memcstat --διακομιστές 127.0.0.1
ο memcstat
Η εντολή δείχνει τα στατιστικά του διακομιστή που λειτουργεί. Η παραπάνω εντολή θα έχει ως αποτέλεσμα την έξοδο που εμφανίζεται παρακάτω.
Διάφορα στατιστικά όπως χρόνο λειτουργίας
σε δευτερόλεπτα, εκδοχή
και pid
θα εμφανιστεί ως έξοδος. Ωστόσο, εάν δεν εμφανίζεται καμία έξοδος, είναι πιθανό το Memcached να μην εκτελείται. Επομένως, πρέπει να εκτελέσετε την ακόλουθη εντολή για να ξεκινήσετε τον διακομιστή Memcached.
sudo systemctl εκκίνηση memcached
Για να εκτελέσετε τον διακομιστή Memcached κατά την εκκίνηση του συστήματος χρησιμοποιήστε την ακόλουθη εντολή.
sudo systemctl enable memcached
Διαμόρφωση του Memcached
Εάν έχετε εγκατεστημένο το memcached στον ίδιο τον διακομιστή ιστότοπου, δεν χρειάζεται να αλλάξετε το αρχείο διαμόρφωσης, καθώς το memcached είναι προρυθμισμένο για να λειτουργεί με τον localhost.
Από την άλλη πλευρά, εάν έχετε εγκαταστήσει το Memcached σε ξεχωριστό σύστημα, θα χρειαστεί να αλλάξετε τη διαμόρφωση για να επιτρέψετε στον απομακρυσμένο διακομιστή πρόσβαση στον διακομιστή Memcached.
Ρύθμιση απομακρυσμένης πρόσβασης για διακομιστή Memcached
Το Memcached είναι ευάλωτο σε επιθέσεις DDoS (Distributed Denial of Service). Εσφαλμένος κανόνας τείχους προστασίας και ανοιχτές θύρες UDP θα αφήσουν τον διακομιστή σας ανοιχτό και ευάλωτο σε επιθέσεις DDoS.
Για να μετριαστεί ο κίνδυνος, μπορούμε είτε να απενεργοποιήσουμε το πρωτόκολλο UDP για το Memcached στη διαμόρφωση είτε να ρυθμίσουμε το τείχος προστασίας μόνο για να επιτρέπουμε αξιόπιστους διακομιστές.
Εκτός συσκευασίας, το Ubuntu αποστέλλεται χωρίς ανοιχτές θύρες TCP ή UDP. Επιπλέον, ο δαίμονας του τείχους προστασίας ufw
(απλό τείχος προστασίας) δεν είναι ενεργοποιημένο από προεπιλογή.
Θα ενεργοποιήσουμε το τείχος προστασίας και θα ρυθμίσουμε τη διαμόρφωση του Memcached έτσι ώστε να μπορούμε να μετριάζουμε την ευπάθεια DDoS.
Πρώτα, ενεργοποιήστε το ufw
εκτελώντας την ακόλουθη εντολή:
sudo systemctl ενεργοποίηση ufw
Στη συνέχεια ξεκινήστε το ufw
service εκτελώντας την παρακάτω εντολή:
sudo systemctl start ufw
Με το τείχος προστασίας σε λειτουργία, μπορούμε επιτέλους να ρυθμίσουμε τους κανόνες του τείχους προστασίας. Αρχικά, ενεργοποιήστε τη θύρα 22 για να επιτρέψετε συνδέσεις SSH. Απαιτείται SSH για απομακρυσμένη πρόσβαση στον επιθυμητό διακομιστή.
sudo ufw επιτρέπω 22
Δεύτερον, πρέπει να γνωρίζετε τη διεύθυνση IP του πελάτη, δηλαδή τον κεντρικό υπολογιστή εφαρμογής web και τη διεύθυνση IP του διακομιστή, δηλαδή τον διακομιστή Memcached.
Σε αυτήν την περίπτωση, ας υποθέσουμε ότι είναι η IP του πελάτη 192.168.0.4
και Memcached IP διακομιστή να είναι 192.168.0.5
σε τοπικό δίκτυο.
Επομένως, για να επιτρέψετε την απομακρυσμένη πρόσβαση του διακομιστή memcached στον διακομιστή πελάτη, εκτελέστε:
sudo ufw επιτρέπει από 192.168.0.4 σε οποιαδήποτε θύρα 11211
Αντικαταστήστε το 192.168.0.4
με τη διεύθυνση IP του πελάτη που επιθυμείτε.
Στη συνέχεια, επεξεργαστείτε το αρχείο διαμόρφωσης Memcached που βρίσκεται στο /etc/memcached.conf
με το τρέξιμο νανο
εντολή.
sudo nano /etc/memcached.conf
ο memcached.conf
το αρχείο ρυθμίσεων θα ανοίξει με το nano editor, αναζητήστε το -l 127.0.0.1
γραμμή στη διαμόρφωση και αντικαταστήστε 127.0.0.1
με την IP του διακομιστή Memcached ή σε αυτήν την περίπτωση 192.168.0.5
.
Μετά την αντικατάσταση πιέστε ctrl+o
για να γράψετε στο αρχείο διαμόρφωσης και να πατήσετε enter, πατήστε ctrl+x
για έξοδο νανο.
Κάντε επανεκκίνηση του διακομιστή Memcached και ufw
τείχος προστασίας εκτελώντας την παρακάτω εντολή.
sudo systemctl επανεκκίνηση memcached ufw
Τώρα τελειώσαμε με την εγκατάσταση και τη διαμόρφωση του διακομιστή Memcached στο Ubuntu 20.04.
Σύνδεση σε διακομιστή Memcached
Για να χρησιμοποιήσετε τον διακομιστή Memcached, θα χρειαστεί να εγκαταστήσετε έναν πελάτη για συγκεκριμένη γλώσσα. Ευτυχώς, το Memcached έχει υποστήριξη για πολλές δημοφιλείς γλώσσες.
Ας δούμε λοιπόν πώς γίνεται η εγκατάσταση php
και Πύθων
πελάτη για Memcached.
Η PHP είναι η πιο δημοφιλής γλώσσα δέσμης ενεργειών από την πλευρά του διακομιστή και η Memcached χρησιμοποιείται ως επί το πλείστον από προγραμματιστές ιστού για τη βελτίωση της απόδοσης διακομιστή των εφαρμογών Ιστού που υποστηρίζονται από την PHP.
Για να εγκαταστήσετε την υποστήριξη memcached σε php, τρέξιμο:
sudo apt εγκατάσταση php-memcached
Η Python έχει επίσης αρκετές βιβλιοθήκες που μπορούν να λειτουργήσουν και να αλληλεπιδράσουν με διακομιστή Memcached, όπως π.χ pymemcached
ή python-memcached
.
Μπορείτε να εγκαταστήσετε το memcached για python εκτελώντας τις ακόλουθες εντολές pip:
εγκατάσταση pip pymemcache
εγκατάσταση pip python-memcached
Συμπερασματικά, εξετάσαμε την εγκατάσταση, τη διαμόρφωση και λίγους πελάτες για συγκεκριμένες γλώσσες του Memcached στο Ubuntu 20.04.
Για να μάθετε πιο λεπτή και προηγμένη χρήση του Memcached, ρίξτε μια ματιά στο Memcached Wiki.