posted by qubix on May 18, 2015

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

Προφανώς μία λύση είναι να ..αγοράσουμε περισσότερη RAM. Αυτό όμως δεν είναι πάντα εφικτό. Ίσως το μηχάνημα να μην παίρνει περισσότερη μνήμη, ίσως δεν υπάρχουν άλλα slots για να μπει, ίσως είναι κάποιο εταιρικό laptop το οποίο δεν μπορούμε ή δε θέλουμε να πειράξουμε.

Ήρθε η ώρα λοιπόν για τη δημιουργία ενός swapfile! Τι είναι αυτό καταρχάς. Το swapfile είναι ένα αρχείο το οποίο το λειτουργικό μπορεί να χρησιμοποιήσει ως εικονική μνήμη RAM όταν η κανονική τελειώσει. Αυτό έχει τα υπερ του, όπως για παράδειγμα το οτι μπορούμε να βάλουμε 64Gb αν θέλουμε και να σηκώσουμε 10 Virtual machines με windozzzee, αλλά έχει και το κατά πως οι σκληροί δίσκοι -ακόμη και οι ssd- είναι αργοί σα χελώνες σε σύγκριση με τη RAM και όλα θα σέρνονται.

Εν πάση περιπτώσει η διαδικασία είναι πολύ απλή. Χρειάζεται βέβαια να έχουμε δικαιώματα root ή παραπλήσια ώστε να την πραγματοποιήσουμε.

Πάμε παρακάτω λοιπόν:

1) τσεκάρουμε αν υπάρχει ήδη swap file ή κάποιο swap partition

free -m

αν δεν υπάρχει swap θα πρέπει να δείτε μια γραμμή

Swap: 0 0 0

2) εφόσον δεν υπάρχει κάποιο swap, πάμε να φτιάξουμε ένα με το utility fallocate

fallocate /swapfile -l 2G

έβαλα εγώ τώρα 2G, μπορείτε εσείς να βάλετε όσο θέλετε, κατά προτίμηση όσο και η διαθέσιμη RAM που έχετε, εκτός και έχετε πολύ λίγη οπότε βάλτε επί δύο ή τρία

3) κάνουμε το αρχείο swapfile format ως swap

mkswap /swapfile

4) του δίνουμε τα κατάλληλα δικαιώματα για να μη διαμαρτύρεται το σύστημα πως είναι "insecure"

chmod 600 /swapfile

5) του δίνουμε μία να ξεκινήσει :]

swapon /swapfile

6) τσεκάρουμε πως τώρα υπάρχει swap

swapon (σκέτο χωρίς ορίσματα)

πρέπει να δούμε κάτι σαν το παρακάτω:

NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -1

7) πάμε τώρα στο αρχείο /etc/fstab να το δηλώσουμε ώστε σε κάθε εκκίνηση να γίνεται mount

nano /etc/fstab (ή vim, emacs ότι editor προτιμάτε)

και προσθέτουμε τη γραμμή

/swapfile1 none swap sw 0 0

8) σώζουμε το αρχείο και είμαστε έτοιμοι!

hyperworks