Η προσθήκη χώρου swap στον διακομιστή σας είναι μια εξαιρετική επιλογή για την αντιστάθμιση σφαλμάτων έλλειψης μνήμης. Linux επιτρέπει στους χρήστες να προσθέτουν χώρο swap στο σύστημά τους όταν η ποσότητα της RAM στο σύστημα είναι πλήρης. Όταν δημιουργείτε ένα αποκλειστικό διαμέρισμα χώρου, θα επιτρέψετε στη φυσική σας μνήμη να λειτουργεί ομαλά χωρίς να ανησυχείτε πολύ για τον χαμηλό χώρο στο δίσκο.
Επισκόπηση Swap
Ο χώρος swap στο Linux είναι ένα μέρος της εικονικής μνήμης που χρησιμοποιείται όταν η φυσική μνήμη εξαντλείται. Ειδικά όταν εργάζεστε με ένα μεγάλο πρόγραμμα ή εφαρμογή όπου προκύπτει ανάγκη για επιπλέον μνήμη, ο χώρος swap είναι μια ιδανική επιλογή για τη διατήρηση προσωρινά ανενεργών σελίδων μνήμης. Η δημιουργία ενός χώρου swap επιτρέπει στους χρήστες να αποθηκεύουν δεδομένα όταν εκτελούνται μεγάλα προγράμματα και έτσι μειώνει τις καταρρεύσεις εφαρμογών. Αυτό σημαίνει ότι εάν το σύστημα χρειάζεται περισσότερους πόρους μνήμης και η RAM είναι πλήρης, όλες οι ανενεργές σελίδες στη μνήμη μεταφέρονται στον χώρο swap και τα προγράμματα μπορούν να εκτελούνται χωρίς διακοπή.
Πόσο Χώρο Swap Χρειάζομαι;
Η ποσότητα του χώρου swap εξαρτάται από διάφορους παράγοντες. Αυτοί περιλαμβάνουν τη διαθέσιμη RAM, το επιβαλλόμενο φορτίο και το εάν το σύστημα απαιτείται να υποστηρίζει τη λειτουργία αδρανοποίησης (suspend-to-disk). Ανατρέξτε στον παρακάτω πίνακα για να ελέγξετε τον συνιστώμενο χώρο swap με βάση τον διαθέσιμο χώρο στη RAM:
|
Α/Α |
Διαθέσιμος Χώρος RAM |
Συνιστώμενος Χώρος Swap |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στα βήματα προσθήκης χώρου swap στο Ubuntu 20.04. Ας ξεκινήσουμε!
Προαπαιτούμενα
Για να παρακολουθήσετε αυτόν τον οδηγό, θα χρειαστείτε:
- Εγκατεστημένο Ubuntu στο σύστημά σας.
- Μη-root χρήστη λογαριασμό ρυθμισμένο με προνόμια sudo στο μηχάνημά σας.
Βήμα 1: Έλεγχος Πληροφοριών Swap
Το μέγεθος του χώρου swap εξαρτάται από τη RAM του συστήματος. Επομένως, είναι απαραίτητο να ελέγξετε τη διαθεσιμότητα χώρου swap στο σύστημά σας πριν δημιουργήσετε έναν. Πληκτρολογήστε την παρακάτω εντολή για να ελέγξετε εάν το σύστημα έχει ρυθμισμένο swap:
|
1 |
$ sudo swapon --show |
Εάν εμφανιστεί κάποιο αποτέλεσμα, αυτό σημαίνει ότι υπάρχει διαθέσιμος χώρος στο σύστημά σας για τη δημιουργία χώρου swap. Ωστόσο, η απουσία αποτελέσματος είναι ένα σήμα που υποδεικνύει ότι δεν υπάρχει αρκετός διαθέσιμος χώρος για την προσθήκη χώρου swap.
Χρησιμοποιήστε το εργαλείο free για να επαληθεύσετε ότι δεν υπάρχει ενεργό swap:
|
1 |
$ free -h |
Θα δείτε το αποτέλεσμα ως μια κενή γραμμή swap:
Βήμα 2: Έλεγχος Διαθεσιμότητας Διαμερίσματος Σκληρού Δίσκου
Παρόμοια με τον έλεγχο της διαθεσιμότητας του συστήματος, ας ελέγξουμε τώρα την τρέχουσα χρήση του δίσκου μας για να βεβαιωθούμε ότι έχουμε αρκετό χώρο. Χρησιμοποιήστε την εντολή df για να ελέγξετε τη διαθεσιμότητα του διαμερίσματος του σκληρού δίσκου:
|
1 |
df -h |
Η συσκευή με / στη στήλη Mounted on είναι ο δίσκος μας ο οποίος είναι 11% ελεύθερος. Θα δείτε το αποτέλεσμα:
Αφού ελέγξουμε τις απαιτήσεις του συστήματος, ας προχωρήσουμε και ας δημιουργήσουμε ένα αρχείο swap στο σύστημα αρχείων μας.
Βήμα 3: Δημιουργία Αρχείου Swap
Για να δημιουργήσετε ένα αρχείο swap στο σύστημα αρχείων μας, εκχωρήστε ένα όνομα αρχείου ως swapfile στον ριζικό κατάλογο (/) χρησιμοποιώντας το πρόγραμμα fallocate. Η εκχώρηση μεγέθους αρχείου εξαρτάται από τις ανάγκες σας. Για να διατηρήσουμε τον οδηγό απλό και εύκολο στην κατανόηση, δημιουργούμε ένα αρχείο 1G και αφιερώνουμε 1G RAM. Χρησιμοποιήστε την εντολή sudo για να δημιουργήσετε ένα αρχείο swap:
|
1 |
sudo fallocate -l 1G /swapfile |
Στη συνέχεια, πληκτρολογήστε αυτήν την εντολή για να επαληθεύσετε τον δεσμευμένο χώρο:
|
1 |
$ ls -lh /swapfile |
Τώρα που δημιουργήσαμε έναν χώρο swap στο σύστημά μας, ας τον ενεργοποιήσουμε στο επόμενο βήμα.
Βήμα 4: Ενεργοποίηση του Αρχείου Swap
Μόλις έχουμε το σωστό μέγεθος διαθέσιμο, ας το μετατρέψουμε σε χώρο swap. Για λόγους ασφαλείας, είναι κρίσιμο να κάνουμε το αρχείο μας προσβάσιμο μόνο σε χρήστες root και να αποτρέψουμε την πρόσβαση από κανονικούς χρήστες. Θα προσθέσουμε περιορισμούς ώστε οι χρήστες με προνόμια root να μπορούν να δουν το αρχείο και να διαβάσουν τα περιεχόμενά του. Χρησιμοποιήστε την ακόλουθη root εντολή για να κάνετε το αρχείο προσβάσιμο μόνο σε χρήστες root :
|
1 |
sudo chmod 600 /swapfile |
Στη συνέχεια, χρησιμοποιήστε την εντολή ls για να επαληθεύσετε τις αλλαγές:
|
1 |
$ ls -lh /swapfile |
Όπως μπορείτε να δείτε, μόνο ο χρήστης root έχει ενεργοποιημένες τις σημαίες ανάγνωσης και εγγραφής:
Μετά από αυτό, σημειώστε το αρχείο ως χώρο swap:
|
1 |
sudo mkswap /swapfile |
Θα δείτε το αποτέλεσμα:
Μετά από αυτό, ενεργοποιήστε το αρχείο swap και επιτρέψτε στο σύστημά μας να αρχίσει να το χρησιμοποιεί:
|
1 |
sudo swapon /swapfile |
Next, verify the swap availability:
|
1 |
$ sudo swapon --show |
Θα δείτε το αποτέλεσμα:
Όπως κάναμε στο Step 1, θα ελέγξουμε ξανά τον free χώρο του βοηθητικού προγράμματος:
|
1 |
free -h |
Θα δείτε το αποτέλεσμα:
Το swap μας έχει ρυθμιστεί με επιτυχία και το λειτουργικό μας σύστημα θα αρχίσει να το χρησιμοποιεί όπως απαιτείται. Στο επόμενο βήμα, θα κάνουμε το αρχείο swap μόνιμο.
Βήμα 5: Κάντε το Αρχείο Swap Μόνιμο
Από προεπιλογή, ο διακομιστής δεν θα διατηρεί αυτόματα τις ρυθμίσεις swap κάθε φορά που κάνουμε επανεκκίνηση. Για να αλλάξουμε τις προεπιλεγμένες ρυθμίσεις και να είμαστε ασφαλείς, θα προσθέσουμε το αρχείο swap στο αρχείο μας /etc/fstab. Χρησιμοποιήστε την εντολή sudo για να δημιουργήσετε αντίγραφο ασφαλείας του αρχείου /etc/fstab :
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Στη συνέχεια, προσθέστε τις πληροφορίες του αρχείου swap στο τέλος του αρχείου σας /etc/fstab πληκτρολογώντας:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Μετά από αυτό, ας δούμε μερικές ρυθμίσεις και ας κάνουμε τροποποιήσεις ώστε να μπορέσουμε να συντονίσουμε τον χώρο swap μας.
Βήμα 6: Τροποποίηση Ρυθμίσεων Swap
Σε αυτό το βήμα, θα διαμορφώσουμε τις ρυθμίσεις και θα κάνουμε μερικές τροποποιήσεις. Ας προσαρμόσουμε την ιδιότητα swappiness και ας αλλάξουμε την πίεση της προσωρινής μνήμης.
-
Προσαρμογή της Ιδιότητας Swappiness
Η παράμετρος swappiness είναι μια ρυθμίσιμη παράμετρος του πυρήνα. Αλλάζει την ισορροπία μεταξύ της μεταφοράς της μνήμης χρόνου εκτέλεσης στο swap και ευθύνεται για την ανταλλαγή δεδομένων μεταξύ της RAM και του χώρου swap. Αυτή η παραμετρική τιμή εκφράζεται σε ποσοστό, που κυμαίνεται από 0 έως 100.
Η τιμή vm.swappiness έχει άμεση επίδραση στη συμπεριφορά του swappiness του συστήματος. Όσο υψηλότερο είναι το vm.swappiness, τόσο περισσότερο θα κάνει swap το σύστημα και αντίστροφα. Εάν η τιμή είναι κοντά στο μηδέν, ο πυρήνας δεν θα μεταφέρει δεδομένα στο swap, κάτι που μπορεί να οδηγήσει σε μείωση της απόδοσης. Το να επιτρέψετε στο σύστημά σας να μην εξαρτάται πολύ από το swap είναι ένας εξαιρετικός τρόπος για να βελτιώσετε την απόδοσή του και να αποκτήσετε ισχυρή ανταπόκριση.
Εναλλακτικά, ένα vm.swappiness που είναι πιο κοντά στο 100 προσπαθεί να τοποθετήσει περισσότερα δεδομένα στο swap και λιγότερα στη φυσική μνήμη. Σε αντίθεση με τη χαμηλή έως μέτρια τιμή vm.swappiness, το υψηλό swapping του συστήματος έχει πολύ ανεπιθύμητα αποτελέσματα όταν υπάρχουν μεγάλα φορτία δεδομένων που μεταφέρονται ενεργά μέσα και έξω από τη RAM.
Ελέγξτε την τρέχουσα τιμή swappiness πληκτρολογώντας:
|
1 |
cat /proc/sys/vm/swappiness |
Θα δείτε το αποτέλεσμα:
Μπορείτε επίσης να ορίσετε το swappiness της επιλογής σας χρησιμοποιώντας την εντολή sysctl. Ας ορίσουμε την τιμή swappiness σε 15 πληκτρολογώντας:
|
1 |
sudo sysctl vm.swappiness = 15 |
Θα δείτε το αποτέλεσμα:
Μέχρι να γίνει επανεκκίνηση του συστήματος, οι ρυθμίσεις θα παραμείνουν ως έχουν. Προσθέστε τη γραμμή στο αρχείο μας /etc/sysctl.conf για να ορίσετε την τιμή αυτόματα κατά την επανεκκίνηση:
|
1 |
sudo nano /etc/sysctl.conf |
Μπορείτε να προσθέσετε τον ακόλουθο κώδικα στο κάτω μέρος:
|
1 |
Vm.swappiness = 15 |
Στη συνέχεια, αποθηκεύστε και κλείστε το αρχείο.
-
Προσαρμογή της Πίεσης της Προσωρινής Μνήμης (Cache Pressure)
Στη συνέχεια, πρόκειται να τροποποιήσουμε το vfs_cache_pressure το οποίο θα φροντίσει για τις πληροφορίες inode και dentry έναντι άλλων δεδομένων. Αυτές οι ρυθμίσεις vfs_cache_pressure settings ελέγχουν επίσης την τάση του πυρήνα να ανακτά τη μνήμη που χρησιμοποιείται για την προσωρινή αποθήκευση του καταλόγου. Περιηγηθείτε ξανά στο σύστημα αρχείων proc για να ελέγξετε την τρέχουσα τιμή:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Θα δείτε το αποτέλεσμα:
Καθώς η διαμόρφωση έχει ήδη γίνει, το σύστημά μας θα εξαλείψει τις πληροφορίες inode από την προσωρινή μνήμη. Ας ορίσουμε το sysctl vm.vfs_cache_pressure σε μια πιο σταθερή ρύθμιση όπως αυτή:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Θα δείτε το αποτέλεσμα:
Παρόμοια με αυτό που κάναμε στη ρύθμιση swappiness, μπορούμε να αλλάξουμε τη διαμόρφωση και εδώ:
|
1 |
sudo nano /etc/sysctl.conf |
Στο κάτω μέρος, εισαγάγετε μια γραμμή που να δείχνει τη νέα τιμή που δημιουργήσατε:
|
1 |
Vm.vfs_cache_pressure = 60 |
Τέλος, αποθηκεύστε και κλείστε το αρχείο.
Συμπέρασμα
Μπορείτε να προσθέσετε χώρο swap ως αποκλειστικό swap partition, αρχείο swap ή συνδυασμό και των δύο. Μπορείτε να δημιουργήσετε χώρο swap και να αξιοποιήσετε τα οφέλη του για να εκτελείτε εφαρμογές απρόσκοπτα χωρίς να ανησυχείτε πολύ για προειδοποιήσεις out-of-memory. Αν και η δημιουργία χώρου swap είναι ένα πρόσθετο πλεονέκτημα σε συστήματα με περιορισμένο χώρο μνήμης, δεν πρέπει να αντιμετωπίζεται ως εναλλακτική λύση για περισσότερο χώρο RAM. Θυμηθείτε, ο χώρος swap βρίσκεται σε σκληρό δίσκο, επομένως ενδέχεται να αντιμετωπίσετε ελαφρώς πιο αργό χρόνο πρόσβασης σε σύγκριση με τη φυσική μνήμη.
Εδώ θα βρείτε περισσότερους οδηγούς στο blog μας που θα σας βοηθήσουν να ξεκινήσετε με τους Ubuntu servers σας:
- Ρύθμιση NFS mount στο Ubuntu 20.04
- Εγκατάσταση του Nginx στο Ubuntu 18.04
- Ρύθμιση firewall με UFW στο Ubuntu 18.04
Καλή συνέχεια!










Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.