Αύξηση του swapspace σε Debian-based ΑRM διανομή.

Αυτές τις μέρες, ασχολούμαι με τη δημιουργία ενός tiny PBX σε ένα orange Pi zero. Τελείως custom εφαρμογή, πάνω σε armbian jessie, με πάρα πολλά προβλήματα, η οποία εάν λειτουργήσει, θα ανεβάσω ένα step-by-step how to.

Ένα απο τα θέματα ήταν η πολύ μικρή RAM του Orange, μόλις 256ΜΒ, και το σχετικά ικανοποιητικό αλλά πρακτικά ανύπαρκτο swapspace, με μέγεθος μόλις 128ΜΒ.

Οπότε ξεκινάμε διώχνωντας το ήδη υπάρχον swap αρχείο με:

# swapoff /var/swap

# rm /var/swap

Θα δημιουργήσουμε ένα νέο, μεγέθους 512ΜΒ με blocksize 1024 bytes και θα το γεμίσμουμε με μηδενικά αρχικά.

# touch /var/swap

# dd if=/dev/zero of=/var/swap bs=1024 count=524288

To 524288 προκύπτει απο τα 512MB (το επιθυμητο μέγεθος) * 1024 bytes blocksize = 524288. Εάν επιθυμούμε άλλο μέγεθος, do the math!

Ενεργοποιούμε το swapspace με:

# mkswap -f /var/swap

# swapon /var/swap

Αυτή τη στιγμή είμαστε θεωρητικά έτοιμοι, αλλά το σύστημα θα αρχίσει να γράφει στο swapspace μόνο όταν γεμίσει την RAM. Επιβεβαιώνεται αν δώσουμε ένα:

# cat /proc/sys/vm/swapiness

Αυτό θα μας επιστρέψει 0. Το μηδέν είναι ένα αφαιρετικό ποσοστό του 100%. Δηλαδή εάν ήταν 20, αφαιρετικά θα ήταν το 80% που σημαίνει πώς όταν η RAM θα έφτανε στο 80% χρήσης, τότε ο kernel θα άρχιζε να χρησιμοποιεί το swapspace.

Για να το ορίσουμε στο 90% δίνουμε ανάλογα:

# sysctl vm.swappiness=10

Οπότε πλέον το swapiness βρίσκεται στο 10 και είμαστε έτοιμοι.

Προσοχή: Η ορθή χρήση swap προϋποθέτει την ύπαρξη γρήγορου αποθηκευτικού μέσου, στη προκειμένη περίπτωση γρήγορης sd card. Εάν πχ χρησιμοποιούμε μία class4 sd, τότε σίγουρα θα παρατηρήσουμε τρομερή πτώση στην απόδοση του συστήματος. Επίσης, η εκτεταμένη χρήση του swap μειώνει την διάρκεια ζωής της sd, λόγω των πολλαπλών read/write.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: