−25%

στα Windows με ετήσια χρέωση, έως 31/10. Δείτε τα πακέτα

EQVPS

Πώς να προσθέσετε αρχείο swap σε Linux VPS

Δημιουργήστε αρχείο swap με πέντε εντολές, κάντε το να επιβιώνει τις επανεκκινήσεις και ρυθμίστε το swappiness· επίσης πόσο swap να προσθέσετε και πότε η πραγματική λύση είναι περισσότερη RAM.

Οι μικροί servers ξεμένουν από μνήμη στις χειρότερες στιγμές: ένα apt upgrade, ένα build Docker, ένα νυχτερινό backup. Χωρίς swap, ο OOM killer του kernel διαλέγει μια διεργασία και την τερματίζει, συχνά τη βάση δεδομένων σας. Ένα αρχείο swap είναι μια φτηνή ζώνη ασφαλείας που δίνει σε αυτές τις αιχμές κάπου να πάνε. Χρειάζεται πέντε εντολές.

1. Δείτε τι έχετε

swapon --show
free -h

Αν το swapon --show δεν βγάλει τίποτα, δεν υπάρχει ακόμα swap.

2. Δημιουργήστε το αρχείο swap

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Το chmod 600 έχει σημασία: το swap μπορεί να περιέχει κομμάτια από οτιδήποτε ήταν στη μνήμη, και μυστικά, οπότε μόνο ο root πρέπει να μπορεί να το διαβάσει. Αν το fallocate αποτύχει με «operation not supported», χρησιμοποιήστε αντ' αυτού το dd:

dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

3. Κάντε το μόνιμο

Χωρίς αυτό το βήμα, το swap εξαφανίζεται μετά την επανεκκίνηση:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

4. Ρυθμίστε το swappiness

Πείτε στον kernel να προτιμά τη RAM και να χρησιμοποιεί το swap κυρίως υπό πίεση:

echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system

5. Επαληθεύστε

swapon --show
free -h

Πρέπει να βλέπετε μια συσκευή swap 2 GB, και το cat /proc/sys/vm/swappiness πρέπει να τυπώνει 10.

Πόσο μεγάλο να είναι;

Μην ορίζετε το swap στο «διπλάσιο της RAM». Σε έναν server, το swap υπάρχει για να απορροφά σύντομες αιχμές, όχι για να τρέχει φόρτους που δεν χωρούν στη μνήμη.

Όταν το swap δεν είναι η απάντηση

Παρακολουθήστε το για λίγες μέρες:

vmstat 5

Οι στήλες si και so δείχνουν σελίδες που μπαίνουν και βγαίνουν από το swap ανά δευτερόλεπτο. Περιστασιακή δραστηριότητα είναι εντάξει. Σταθερές μη μηδενικές τιμές σημαίνουν ότι ο server έχει έλλειψη μνήμης και όλα περιμένουν τον δίσκο. Τότε η λύση είναι περισσότερη RAM· δείτε πόση RAM χρειάζεται ένα VPS. Στο EQVPS μπορείτε να περάσετε σε μεγαλύτερο πακέτο χωρίς επανεγκατάσταση· τα δεδομένα σας μένουν.

Σχετικά

Συχνές ερωτήσεις

Πόσο swap να προσθέσω;

Σε servers με 1–2 GB RAM, ένα αρχείο swap 1–2 GB είναι καλή προεπιλογή. Και σε μεγαλύτερους servers, 1–2 GB αρκούν ως δίχτυ ασφαλείας· η συμβουλή «διπλάσιο της RAM» είναι από την εποχή των μηχανημάτων 256 MB.

Θα κάνει το swap τον server μου πιο γρήγορο;

Όχι. Το swap απλώς αποτρέπει καταρρεύσεις όταν η μνήμη τελειώνει στιγμιαία: μια αναβάθμιση πακέτου, ένα build Docker, ένα backup. Οι σελίδες μνήμης στον δίσκο είναι χιλιάδες φορές πιο αργές από τη RAM. Αν ο server κάνει swap συνεχώς, χρειάζεται περισσότερη RAM.

Τι κάνει το swappiness;

Ελέγχει πόσο πρόθυμα ο kernel μεταφέρει αδρανή μνήμη στο swap. Η προεπιλογή 60 κάνει swap αρκετά νωρίς· το 10 λέει στον kernel να κρατά τα πράγματα στη RAM και να χρησιμοποιεί το swap κυρίως υπό πραγματική πίεση, κάτι που ταιριάζει στους περισσότερους servers.

Γιατί αρχείο swap και όχι κατάτμηση swap;

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

Πώς αφαιρώ το swap αργότερα;

Τρέξτε 'swapoff /swapfile', διαγράψτε τη γραμμή του /swapfile από το /etc/fstab και μετά 'rm /swapfile'.

Σχόλια

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

Αφήστε ένα σχόλιο

Τα σχόλια ελέγχονται πριν εμφανιστούν.