«Ποιος χρειάζεται Swap στην εποχή μας» θα έλεγε κάποιος. Δυστυχώς είμαστε μακρυά ακόμα από την μη χρήση του Swap. Παρόλα αυτά για αυτούς που δεν φτιάχνουν Swap Partition αλλά θέλουν την «ασφάλεια» του αλλά και να συνδυάσουν τα εκπληκτικά Zswap και ZRam υπάρχει το SystemD-Swap

Εισαγωγή

Το Swap Partition είναι ένας χώρος του δίσκου σας, το οποίο είναι αφιερωμένο στο χειρισμό των συνθηκών στις οποίες θα πρέπει τμήματα της μνήμης RAM να «αδειάσει» χώρο οπότε και χρησιμοποιεί αυτόν τον χώρο για την αποθήκευσή αυτών των τμημάτων.

Οι σημερινοί υπολογιστές, είναι εξοπλισμένοι πλέον με μπόλικη RAM η οποία ξεκινάει από 4GB και άνω. Παρόλα αυτά, τα λειτουργικά συστήματα για διάφορους λόγους (πιθανότητα «υπερχείλισης μνήμης»,  χρήση αδρανοποίησης υπολογιστή κλπ) δημιουργούν, ακόμα και υπό συνθήκες μπόλικης μνήμης, ξεχωριστά διαμερίσματα  για να έχουν διαθέσιμη μνήμη σε περίπτωση που χρειαστεί να ελευθερώσουν χώρο από την RAM.

Διαφορετικές υλοποιήσεις του Swap

Οι περισσότεροι έμπειροι χρήστες Linux, δεν δημιουργούν διαμέρισμα swap κατά την εγκατάσταση του λειτουργικού συστήματος, αλλά δημιουργούν ένα SwapFile (όπως και οι εκδόσεις Ubuntu 19.10 και έπειτα) το οποίο ουσιαστικά είναι ένα αρχείο που εργάζεται ως Swap χώρος. Κάνει ακριβώς την ίδια δουλειά και έχει το πλεονέκτημα, επειδή δεν δεσμεύει κάποιο διαμέρισμα στον δίσκο, να μπορεί ο χρήστης να αυξομειώνει το μέγεθός του κατά το δοκούν.

Εναλλακτικά υπάρχουν και οι λύσεις του Zswap και Zram τα οποία είδαμε στο άρθρο «Μνήμη RAM: Βελτίωση διαχείρισης με zram – zswap – zcache» το οποίο αν δεν το έχετε διαβάσει, σας το συστήνω ανεπιφύλακτα ιδιαίτερα δε τις απορίες στα σχόλια.

Advertisements

SystemD-Swap

Όλα τα παραπάνω μπορούν να συνδυαστούν ανάλογα και με τις ανάγκες του καθενός με το systemd-swap.  Η μόνη προϋπόθεση φυσικά είναι η διανομή σας να χρησιμοποιεί System για τις υπηρεσίες του. Οι περισσότερες, αν όχι όλες οι διανομές (πλην κάποιων εξαιρέσεων) βασίζονται στο SystemD οπότε αν δεν είστε σίγουροι, ρωτήστε κάτω στα σχόλια.

Μερικά σημαντικά πλεονέκτημα του systemd-swap είναι:

  • Εύκολη εγκατάσταση και ρύθμιση
  • Δεν χρειάζεται να έχετε Swap Partition
  • Υποστηρίζει όλα τα συστήματα αρχείων (αν ρυθμιστεί ως Swap File Universal) και ιδιαίτερα το Btrfs που δεν υποστηρίζει ακόμα Swap Files
  • Μεγαλώνει ανάλογα με τις ανάγκες (αν ρυθμιστεί ως Swap File Chunked)
  • Συνδυάζει το Zram ή Zswap

Εγκατάσταση του SystemD-Swap

Επίσημα το SystemD-swap διαθέτει «έτοιμες λύσεις εγκατάστασης για Arch Linux και Debian διανομές. Οι υπόλοιποι απλά χρησιμοποιούν την χειροκίνητη εγκατάσταση

Για να το εγκαταστήσετε σε Arch απλά τρέχετε:

sudo pacman -S systemd-swap

Σε Debian χρησιμοποιείτε το script του που παράγει Deb πακέτο:

cd /tmp
git clone https://github.com/Nefelim4ag/systemd-swap.git
cd systemd-swap
./package.sh debian

sudo apt install ./systemd-swap-*any.deb

Για τις υπόλοιπες διανομές μπορείτε να κάνετε χειροκίνητη εγκατάστασή του:

git clone https://github.com/Nefelim4ag/systemd-swap.git

Ρύθμιση του SystemD-Swap

Η ρύθμιση του SystemD-Swap γίνεται απλά ανοίγοντας ως διαχειριστές το παρακάτω αρχείο για επεξεργασία:

/etc/systemd/swap.conf

Αφού το ανοίξετε, μπορεί σε πρώτη ματιά να «χαθείτε»…. δώστε λίγο χρόνο να το δείτε από την αρχή μέχρι το τέλος.  Θα δείτε ότι είναι χωρισμένο σε 4 τμήματα:

  1. Zswap
  2. ZRam
  3. Swap File Universal (swapfu)
  4. Swap File Chunked (swapfc)

Εδώ λοιπόν χρειάζεται να ενεργοποιήσουμε είτε Zswap είτε ZRam και ένα απο τα Swap File (Universal ή Chuncked)

Σε γενικές γραμμές διαλέξετε κάποιο από τα παρακάτω:

  • Αν διαθέτετε Laptop, Desktop προτείνεται ο συνδυασμός zswap + swapfc
  • Σε περίπτωση που ο δίσκος είναι SSD τότε προτείνεται ο συνδυασμός με ZRam
  • Σε κάθε περίπτωση συνδυασμού αν θέλετε αυτόματη αυξομείωση τότε χρησιμοποιείτε swapfc
  • Αν είστε σε σύστημα αρχείων Btrfs τότε να χρησιμοποιείτε συνδυασμό με swapfu

Αφού αποφασίσετε ποιον συνδυασμό ακολουθείτε, απλά βάζετε 0 για να απενεργοποιήσετε ή 1 για να ενεργοποιήσετε κάποια ιδιότητα. Παράδειγμα, βρείτε τις γραμμές στις οποίες αναφέρονται τα παρακάτω:

zswap_enabled=0
zram_enabled=1
swapfu_enabled=0
swapfc_enabled=1

όπου ο παραπάνω συνδυασμός ενεργοποιεί το zram και swapfc.

Μένει μόνο να ρυθμίσουμε το σύστημα να εκκινεί την υπηρεσία αυτόματα :

sudo systemctl enable systemd-swap

sudo systemctl start systemd-swap

Επίλογος

Για όσους ΔΕΝ έχουν Swap Partition ή και Swap File, είδαμε οτι με το SystemD-Swap μπορούν όχι μόνο να διαχειριστούν  το ζήτημα αυτό αλλά και να το συνδυάσουν με τις δυνατότητες του Zswap και Zram με ένα εργαλείο.

Το επίσημο αποθετήριο του SystemD-Swap είναι:

Εσείς ποιον συνδυασμό χρησιμοποιείτε ;

Γράψτε στα σχόλια τον συνδυασμό που επιλέξατε η τυχών τις απορίες σας.