Δημιουργία τοπικού swap partition

Ξεκίνησε από alkisg, 13 Δεκ 2019, 11:41:46 ΠΜ

« προηγούμενο - επόμενο »

alkisg

Συμβουλή: φτιάξτε ένα τοπικό swap partition σε όλους τους clients, και ιδιαίτερα σε αυτούς που έχουν λιγότερο από 3 GB RAM.

Γιατί: έστω ότι ένας client με λίγη RAM ανοίγει browser ή άλλα βαριά προγράμματα. Η RAM εξαντλείται και ξεκινά να χρησιμοποιείται η εικονική μνήμη swap. Όταν δεν υπάρχει τοπικό swap partition, τότε το LTSP δίνει swap μέσω δικτύου (NBD_SWAP). Αυτό καλό είναι για ευκαιριακή χρήση, αλλά αν έχει εξαντληθεί η RAM τότε αυτός ο client τρώει όλο το bandwidth του δικτύου καθώς και μπόλικη RAM ή bandwidth δίσκου του server.

Δηλαδή, με το NBD_SWAP, ένας client με εξαντλημένη RAM μπορεί να μας τσακίσει όλο το εργαστήριο.
Αντίθετα, όταν υπάρχει swap partition, δεν χρησιμοποιείται NBD_SWAP, και καταπονείται μόνο ο συγκεκριμένος client.

Πώς: εγκαταστήστε το gparted και κάντε δημοσίευση εικονικού δίσκου. Στη συνέχεια συνδεθείτε κανονικά στους clients, και μέσα από τον Επόπτη εκτελέστε την εντολή "sudo gparted".
Κάντε resize κάποιο partition για να δημιουργήσετε ελεύθερο χώρο. Προσέξτε να μην μετακινηθεί το αριστερό άκρο NTFS διαμερίσματος, γιατί τότε συχνά δημιουργούνται προβλήματα. Αν κάποιο NTFS διαμέρισμα δεν είναι διαθέσιμο, κάντε επανεκκίνηση και chkdsk /f από Windows και μετά ξαναδοκιμάστε.

Το μέγεθος του swap partition δεν χρειάζεται να είναι ιδιαίτερα μεγάλο, π.χ. 2100 MB καλά είναι.

Φυσικά να επισημάνω ότι το τοπικό swap δεν θα λύσει το πρόβλημα του να σέρνεται ο client όταν του εξαντληθεί η RAM. Αυτό θα λυθεί μόνο με την αγορά περισσότερης RAM. Το τοπικό swap απλά αποφεύγει να επηρεάζεται το υπόλοιπο εργαστήριο.

alkisg

#1
Για την περίπτωση που κάποιος έχει ήδη τοπικό Ubuntu αλλά με swap file αντί για swap partition, μπορεί να το χρησιμοποιήσει με τις παρακάτω εντολές στο lts.conf:

Κώδικας: bash
[Default]
NBD_SWAP=False
INIT_COMMAND_SWAP="mkdir -p /var/swap-partition && mount /dev/sda3 /var/swap-partition && swapon /var/swap-partition/swapfile"


...όπου sda3 θα πρέπει να βάλει το partition του Ubuntu.

Δημήτρης Γκίνης

Στο παρακάτω:
Παράθεση από: alkisg στις 13 Δεκ 2019, 11:52:01 ΠΜ
Για την περίπτωση που κάποιος έχει ήδη τοπικό Ubuntu αλλά με swap file αντί για swap partition, μπορεί να το χρησιμοποιήσει με τις παρακάτω εντολές στο lts.conf:
,
αναφέρεσαι στον server (δηλαδή ο server να μην έχει swap partition??) γιατί σε έχασα λίγο... :D :D

alkisg

Όχι εκεί εννοώ τους clients.
Τα τελευταία χρόνια κάμποσα εργαστήρια έρχονται dual boot.
Παλιότερα το Ubuntu έφτιαχνε swap partition και το LTSP το χρησιμοποιούσε αυτόματα.
Δυστυχώς από την 16.04 και μετά δημιουργεί swap file το οποίο θέλει τις παραπάνω εντολές για να χρησιμοποιηθεί (αν θέλουμε να αποφύγουμε το gparted/swap partition).

Δημήτρης Γκίνης

#4
ΟΚ, άλλο:
1. Αφού κάνεις shrink το υπάρχον partition, φτιάξεις νέο partition πχ 4 γιγα, δηλώσεις για αυτό στο file system -> linux-swap και εφαρμόσεις τις αλλαγές,
πρέπει μετά να επιλέξεις το SWAP partition και από το μενού του gparted να επιλέξεις 'Partition' > 'Swapon' (ie Ενεργοποίηση) όπως διάβασα κάπου(...you must set the SWAP file as permanent, else you will lose the SWAP after reboot...)??

2. Η χρήση του gparted είναι μονόδρομος όταν δεν υπάρχει τοπικό ubuntu, σωστά?

alkisg

Παράθεση από: Δημήτρης Γκίνης στις 13 Δεκ 2019, 12:49:23 ΜΜ
πρέπει μετά να επιλέξεις το SWAP partition και από το μενού του gparted να επιλέξεις 'Partition' > 'Swapon' όπως διάβασα κάπου(...you must set the SWAP file as permanent, else you will lose the SWAP after reboot...)??

1. Τσου, αυτό δεν χρειάζεται. Απλό reboot client φτάνει, ούτε swapon ούτε "permanent". Το permanent το γράφουν συνήθως τα tutorial για να το βάλουμε στο fstab, αλλά το ενεργοποιεί αυτόματα το LTSP οπότε δεν το χρειαζόμαστε.

2. Αν υπάρχουν μόνο NTFS partitions τότε ναι χρειάζεται το gparted. Αυτό γιατί πολλές φορές τα Windows κάνουν fast shutdown ή hibernate και κρατάνε το partition τους δεσμευμένο, οπότε δεν μπορούμε να το χρησιμοποιήσουμε για να βάλουμε swap file εκεί.

gidarakos

Άλκη επειδή στην αρχιτεκτονική του fat client αναφέρεται ότι δε χρειάζεται σκληρός δίσκος - και αυτό γνωρίζαμε μέχρι τώρα - το τοπικό swap ισχύει μόνο για την 18.04 ή θα μας ακολουθεί και στις επόμενες εκδόσεις 20.04..; Γιατί όπως έχω καταλάβει το NBD το εγκαταλείπουμε..

alkisg

Η γενική φιλοσοφία είναι ότι το swap ΔΕΝ πρέπει να χρησιμοποιείται στην καθημερινή χρήση του υπολογιστή (αυτό μπορούμε να το εξακριβώσουμε με την εντολή "free").
Το swap και ο σκληρός δίσκος είναι χιλιάδες φορές πιο αργά από τη μνήμη RAM, και όταν αρχίζει να γίνεται έντονη χρήση του swap, ο υπολογιστής δεν είναι λειτουργικός.

Το swap έχει κυρίως τις παρακάτω εφαρμογές:

  • Να κάνει τον υπολογιστή να σέρνεται αντί να κολλάει, ώστε να μας δώσει χρόνο να καταλάβουμε ποιο πρόγραμμα τον κάνει να σέρνεται και να το κλείσουμε. Όχι για να συνεχίσουμε να δουλεύουμε έτσι.
  • Ένα μικρό ποσοστό της RAM, είναι δεδομένα που δεν χρησιμοποιούνται συχνά. Όταν υπάρξει πίεση, αυτά μπορούν να μεταφερθούν στο swap και να μας γλυτώσουν π.χ. το 1/10 της RAM.
  • Σε σπάνιες περιπτώσεις, κάποιο πρόγραμμα μπορεί να χρειαστεί πολλή μνήμη για λίγα δευτερόλεπτα, π.χ. άνοιγμα ή εκτύπωση μιας τεράστιας εικόνας, και να χρειαστεί για λίγο το swap.
Σε καμία περίπτωση δεν θέλουμε τακτική χρήση του swap.

Το τοπικό swap λοιπόν μας προστατεύει όταν ένας υπολογιστής είναι στην περίπτωση 1 και δεν το έχει καταλάβει ούτε ο μαθητής, για να κλείσει το πρόγραμμα που τρώει τη RAM, ούτε ο καθηγητής για να δώσει σχετικές οδηγίες (π.χ. κλείστε το LibreOffice πριν ανοίξετε Firefox). Τότε με το τοπικό swap θα αχρηστευτεί μόνο αυτός ο Η/Υ αντί να αρχηστευτούν όλοι.

Στο μέλλον, αν υποθέσουμε ότι οι clients θα έχουν 4 GB RAM, θα μπορούμε να ενεργοποιούμε σε αυτούς το "zram", και να έχουν "συμπιεσμένο swap στην ίδια τους τη RAM" και να μην επηρεάζουν το υπόλοιπο εργαστήριο όταν σέρνονται. Στο νέο LTSP δεν έχω βάλει καν υποστήριξη για δικτυακό swap, και σκέφτομαι να το αφήσω έτσι.

παρις

Χρειαζομαστε σκληρους δισκους δηλαδη σωστα; Αρα παραγγελνουμε fat με 4GB ram ή να εχει σκληρο σαν δευτερη λυση;
Μηπως ειναι συνετο να υπαρχει παντα ενας 120gb SSD με 20€ γιατι ισως ζητηθει στιγμιαια πολυ Ram?

alkisg

Όταν τελειώνει η RAM χρειαζόμαστε RAM κι αγοράζουμε RAM.
Τον υπάρχοντα σκληρό τον χρησιμοποιούμε ως swap μόνο αν τον έχουμε ήδη.
Δεν έχει νόημα να δίνουμε λεφτά να αγοράσουμε σκληρό όταν χρειαζόμαστε RAM.