Αλλαγή από NBD σε NFS για σταθερότητα και ταχύτητα

Ξεκίνησε από alkisg, 16 Μαΐου 2019, 06:44:49 ΜΜ

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

alkisg

Για να επαναφέρουμε το NBD λογικά αρκεί η παρακάτω εντολή, η οποία αντικαθιστά το αρχείο default με symlink:
sudo ln -sf ltsp /var/lib/tftpboot/ltsp/*/pxelinux.cfg/default

Λυκούργε όμως βεβαιώσου ότι έχεις βάλει τα rsize=32768,wsize=32768 που γράφω παραπάνω.

Εδώ και 10+ χρόνια υπήρχε ένα θέμα με την ταχύτητα του NFS, το οποίο το εντόπισα και το ανάφερα πριν λίγες μέρες. Στο νέο LTSP έχω ήδη περάσει το workaround και πάει σφαίρα, ενώ στο LTSP5 είναι πιο δύσκολο το workaround, οπότε το μισο-φτιάχνουμε με τα rsize=32768,wsize=32768.

Για παράδειγμα, ο χρόνος εκκίνησης ενός παλιού client σε 100ρι δίκτυο έπεσε από 83 sec στα 34 sec, επειδή αντί να μεταφερθούν 1210 MB μέσω δικτύου μεταφέρθηκαν μόνο 158 MB.

lycourgus

Θα ξεκινήσω δοκιμές σήμερα (θα κρατήσω χρόνους) και θα σας πω αναλυτικά.

alkisg

Αν θες έλα και από το IRC μήπως και το επιταχύνουμε κάμποσο με μια INIT_COMMAND_x εντολή (μειώσουμε το read ahead που προκαλεί το πρόβλημα).

lycourgus

Άλκη έχεις δίκιο, τα rsize/wsize είναι απαραίτητα.

Για να bootάρουν ΤΑΥΤΟΧΡΟΝΑ 6 pc σε 100άρι δίκτυο (από το τέλος του bootloader μέχρι τη φόρτωση της login screen)
α. με rsize=32768,wsize=32768 χρειάστηκαν ~80-110 sec
β. χωρίς rsize/wsize χρειαζόταν κοντά ένα 10λεπτο - ΑΝ επιβίωναν (πχ σε πολλές περιπτώσεις κρεμούσαν 2-3)
γ. με σκέτο NBD χρειαζόμασταν κάτι λιγότερο από 5λεπτο (~300-350sec)

Σημείωση: μιλάμε για δίκτυο ΕΠΑΛ με 30 σταθμούς εργασίας, 3 υπολογιστές στη  γραμματεία και αρκετά pc/κινητά εκπαιδευτικών στα 2 wifi του σχολείου (ναι ξέρω - το δίκτυο θέλει περαιτέρω βελτιστοποίηση).

lycourgus

Νέα μέτρηση:

θέτοντας τα rsize/wsize = 16384 , οι clients ξεκίνησαν περίπου σε 70-75''.
Για το δικό μας δίκτυο, φαίνεται με αυτές τις τιμές να πιάσαμε το βέλτιστο.

alkisg

#20
Με τις παρακάτω (αδοκίμαστες!) εντολές προσθέτετε ένα script που θεωρητικά δίνει την βέλτιστη επιτάχυνση, ενώ ταυτόχρονα αφαιρέστε τις παραμέτρους rsize/wsize ώστε να χρησιμοποιηθούν οι default τιμές τους.

Κώδικας: Bash
sudo -i
wget 'https://alkisg.mysch.gr/steki/index.php?action=dlattach;topic=7792.0;attach=5265' -O /usr/share/initramfs-tools/scripts/nfs-bottom/ltspreadahead
chmod +x /usr/share/initramfs-tools/scripts/nfs-bottom/ltspreadahead
update-initramfs -u
cp /boot/initrd.img-* /var/lib/tftpboot/ltsp/*/
exit

markakis

Παράθεση από: alkisg στις 19 Νοε 2019, 12:12:48 ΜΜ
Με τις παρακάτω (αδοκίμαστες!) εντολές προσθέτετε ένα script που θεωρητικά δίνει την βέλτιστη επιτάχυνση, ενώ ταυτόχρονα αφαιρέστε τις παραμέτρους rsize/wsize ώστε να χρησιμοποιηθούν οι default τιμές τους.

Δοκίμασα το script σε 2 διαφορετικά εργαστήρια και όλα λειτουργούν κανονικά. Δεν είχα την πολυτέλεια του χρόνου να μετρήσω με ακρίβεια το χρόνο φόρτωσης πριν και μετά για σύγκριση, όμως, σε Gigabit δίκτυο PC Pentium 4 1.7 με 512 RAM φορτώνει λειτουργικό σε ~1 λεπτό, οπότε είμαστε ΟΚ.

Θα προστεθεί στο αποθετήριο ή θα το βάζουμε εμείς σε περιπτώσεις που διαπιστώνουμε καθυστέρηση;

alkisg

Το παλιό LTSP δεν αναπτύσσεται πια, και όλα αυτά που λέμε εδώ είναι για το παλιό LTSP. Άρα, χειρωνακτικά.

Από Σεπτέμβρη θέλουμε όλα τα σχολεία να έχουν:

  • Οι νέοι υπολογιστές, 20.04 64bit και νέο LTSP
  • Οι παλιοί υπολογιστές, 18.04 32bit και νέο LTSP
Και το παλιό LTSP να μη χρησιμοποιείται πουθενά (εκτός αν κάποιος έχει ακόμα thin clients, π.χ. < Pentium 4 @2 GHz, που δεν θα έπρεπε).
Το νέο LTSP έχει τη βέλτιστη ταχύτητα από default χωρίς να χρειάζεται κάποια ρύθμιση.

alkisg

Ωχ σόρρυ είχα ξεχάσει ένα "nfs-bottom/" στις παραπάνω εντολές οπότε το νέο script δεν καλούνταν καθόλου. Το διόρθωσα αλλά πρέπει να εκτελεστούν ξανά οι εντολές.

Για να βεβαιωθούμε ότι τελικά ενεργεί το script, επιλέγουμε κάποιον client από τον Επόπτη, κάνουμε δεξί κλικ άνοιγμα κονσόλας διαχειριστή τοπικά, και τρέχουμε:

grep -v 128 /sys/class/bdi/*/read_ahead_kb

Αυτό θα πρέπει να εμφανίσει μόνο τέτοιες γραμμές που να τελειώνουν σε 4 και όχι σε άλλο αριθμό:

/sys/class/bdi/0:23/read_ahead_kb:4