Νέα έκδοση Linux kernel 4.12, επιτέλους με τον BFQ ενσωματωμένο

Σπάνια γράφω για νέα σχετικά με τις εκδόσεις του πυρήνα. Αλλά όταν γράφω, είναι σημαντικό. Τέλος.

Ο πυρήνας Linux στην πραγματικότητα (όπως το θέλει ο δημιουργός του, Linus Torvalds) θα πρέπει να είναι αόρατος και να μην μπλέκει στα πόδια του τελικού χρήστη. Επειδή αποτελεί ένα από τα ταχύτερα αναπτυσσόμενα ελεύθερα λογισμικά, θα είναι δύσκολο να παρακολουθεί κάποιος τις εξελίξεις γύρο του.

Όταν όμως οι αλλαγές που συμβαίνουν, επηρεάζουν την καθημερινότητα του χρήστη τότε αξίζει να ρίξει κανείς μια ματιά.

Σημείωση: Όσοι είστε σε διανομές όπως Ubuntu/Debian/Fedora/OpenSUSE Leap κλπ τα οποία έχουν έναν σταθερό κύκλο ανάπτυξης που ξεκινάει από 6 έως 2-3 χρόνια, θα λάβουν την νέα έκδοση πυρήνα μαζί με την νέα έκδοση της διανομής τους.

Όσοι είστε σε διανομές κυλιόμενες, δεν χρειάζεται να σας πω τίποτα, μιας και εντός ημερών θα λάβετε την νέα έκδοση.

Ίσως η σημαντικότερη αλλαγή, κατά την άποψή μου είναι αυτή της προσθήκης του BFQ στον πυρήνα.

Advertisements

Με λίγα λόγια όμως μπορούμε να πούμε ότι βελτιώνει την απόκριση του Desktop μας σε σχέση με τον default CFQ.

Όσοι χρήστες του Ubuntu θα ήθελαν να κατεβάσουν ΤΩΡΑ την νέα έκδοση του πυρήνα για δοκιμή θα πρέπει να κάνουν 2 πράγματα:

  • Να το κατεβάσουν και να το κάνουν εγκατάσταση,
  • Να μπουν με τον νέο πυρήνα και να ενεργοποιήσουν το BFQ

Προσοχή, όσοι χρησιμοποιείτε Drivers της Nvidia και AMD για τις κάρτες γραφικών σας  σταματήστε εδώ και μην κάνετε τίποτα απο τα παρακάτω. Όσοι όμως χρησιμοποιούν τους ανοιχτούς οδηγούς Nvidia, AMD η Intel μπορούν να κατεβάσουν και να κάνουνε εγκατάσταση την νέα έκδοση Πυρήνα :

ΣΗΜΕΙΩΣΗ 12/11/2020

Για να ενεργοποιείσετε το BFQ στο Linux ακολουθείστε τον νεότερο οδηγό : Αργό το Linux;

Τα παρακάτω υπάρχουν για ιστορικούς λόγους

Ωραία, τα εγκαταστήσατε και bootάρατε με αυτό τον πυρήνα, πως ενεργοποιείτε το BFQ; Ανοίξτε ένα τερματικό και δείτε πρώτα ότι έχετε μπει με τον σωστό πυρήνα:

uname -r

Θα πρέπει να σας επιστρέψει την έκδοση 4.12.x.x.x.x αν ναι, τότε ανοίγετε με δικαιώματα sudo το αρχείο /etc/default/grub με τον κειμενογράφο της επιλογής σας και βρίσκετε την ένδειξη

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

όπου δίπλα απο το quiet αφήνετε ένα κενό και γράφετε elevator=bfq και θα φαίνεται κάπως έτσι:

GRUB_CMDLINE_LINUX_DEFAULT="quiet scsi_mod.use_blk_mq=y dm_mod.use_blk_mq=y elevator=bfq"

Κλείνετε και αποθηκεύετε το αρχείο. Ενημερώνετε της αλλαγές σας με την εντολή:

sudo update-grub

και έπειτα κάνετε επανεκκίνηση. Αφού μπείτε ξανά στο Desktop, ανοίξτε πάλι ενα τερματικό και δώστε :

cat /sys/block/sd*/queue/scheduler

όπου θα δείτε λογικά την ένδειξη [none] και άρα είναι ενεργό.

ή μπορείτε να τρέξετε :

sudo tree /sys/block/sd*/mq

Όπου θα δείτε ένα δέντρο αντιστοίχησης ανά πυρήνα της CPU. Ή εναλακτικά αν εγκαταστήσετε και το tlp (sudo apt install tlp) και τρέξετε :

sudo tlp-stat -d|grep Sch

θα δείτε να λέει : Scheduler = blk-mq

Στην παρακάτω εικόνα έχω τρέξει όλες τις εντολές που δείχνουν τις ρυθμίσεις μου αλλά και την ενεργοποίηση του BFQ, για να δείτε τα δικά μου αποτελέσματα:

linux-4-12-bfq-blk-mq-energopoihsh

Επίλογος

Φαίνεται ότι μετά από χρόνια, ο Linus τελικά αποδέχτηκε το BFQ για ενσωμάτωση στον πυρήνα και μάλιστα μέσω του BLK-MQ framwork.

Πείτε μου στα σχόλια αν είδατε διαφορά στο άνοιγμα των εφαρμογών και γενικά στην απόκριση του συστήματος.

Advertisement

23 σκέψεις σχετικά με το “Νέα έκδοση Linux kernel 4.12, επιτέλους με τον BFQ ενσωματωμένο

Add yours

  1. 1) Λες για κλειστούς nvidia /ati (amd). Η amd δεν δίνει πλέον μόνο open source?

    2) Σε antergos πχ που θα έρθει ο νέος πυρήνας σύντομα, κάνουμε κάτι εμείς στα settings?

    1. 1) H AMD δίνει ανοιχτούς Driver αλλά δίνει και κλειστούς. Η Nvidia δίνει μόνο κλειστούς ενώ η κοινότητα αναπτύσσει τον nouveau. Όσοι είναι στους ανοιχτούς drivers AMD/Nouveau δεν νομίζω να αντιμετωπίσουν θέμα. Εσύ έχεις τους κλειστούς ?

      2) Μόλις βγει για Arch θα σου πω τι θα κάνεις και πως :)

    2. Δεδομένου ότι στη δουλειά δουλεύω 16.04 (που δεν το βλέπω να πηγαίνει σε 4.12 επίσημα, σύντομα τουλάχιστον) και κατά καιρούς έχω χαμηλή απόκριση, λέω να το δοκιμάσω! Θα σου πω τι κατάφερα!
      Σε antergos θα δείξει, σε c2duo δουλεύει το μαύρο, ίσως εκεί να αξίζει και περισσότερο μπας και ξεμπουκώσει αν το bfq είναι πιο επιθετικό με κάποιες διεργασίες!

    3. update…ολοκλήρωσα την εγκατάσταση, χρησιμοποιώ τον πυρήνα 4.12.0-041200-generic, αλλά δεν υπάρχει διαθέσιμος ο bfq! Μάλιστα στην εκκίνηση, μου έβγαλε σχετικό σφάλμα και (μάλλον) με γύρισε σε cfq, που χρησιμοποιούσα και πριν!
      noop deadline [cfq]

      Τι να έγινε τώρα, πώς είναι δυνατόν να μην υπάρχει ο bfq?

    4. Για δοκιμάστε να το κάνετε έτσι:

      GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash scsi_mod.use_blk_mq=1 elevator=bfq»

      και μετά

      sudo update-grub

      Υποπτεύομαι οτι το bfq το μετέφεραν στο blk-mq framwork. Αν σας δουλεύει, να το ενημερώσω.

    5. Salih, το έκανα, και μου βγάζει πλέον σαν επιλεγμένο το [none] και μάλιστα, αυτή είναι η μοναδική επιλογή!
      Το ενδιαφέρον είναι, ότι καθώς έψαξα να δω τι παίζει (γιατί δεν με πετάει τουλάχιστον στο [cfq] όπως πριν και δεν εμφανίζει ούτε το deadline, είδα στο omgubuntu ένα comment, ότι αυτό είναι προβλεπόμενο αποτέλεσμα, καθώς: «The reason is the interface is now different. It’s no longer the traditional set of schedulers (CFQ, deadline, noop), but a revamped infrastructure called «blk-mq».

      Porting BFQ to this is one of the reasons it took so long to be merged.»

      Αυτός ο commenter μάλιστα είναι που υπέδειξε πώς να ενεργοποιήσει κανείς τον bfq, με τον τρόπο που λες κι εσύ, συμπεριλ. της παραμέτρου scsi_mod.use_blk_mq=1.
      Μετά ένας άλλος τύπος από κάτω, λέει ότι αν θέλουμε να βλέπουμε τον bfq στα αποτελέσματα, να βγάλουμε την παράμετρο blk αλλά μάλλον νουμπάς είναι δεν διαβάζει cerebrux να μαθαίνει μπαλίτσα ότι δεν φαίνεται!
      Τελικά τώρα που βγάζει [none], έχουμε ή δεν έχουμε bfq, πώς το βλέπουμε;

  2. [UPDATE 6/7/2016]: Ενημέρωσα το άρθρο με περισσότερες εντολές και διορθώσεις αλλά και εικόνα από τα δικά μου αποτελέσματα. Συνήθως δεν το κάνω αυτό. Αλλά όταν το κάνω…. τουμπεκί ψιλοκομμένο !

  3. ‘Oλα οκ σε Xubuntu 16.04.2 LTS 32bit,όντως καλύτερη απόκριση του συστήματος,το μόνο πρόβλημα που έχω είναι οτι στο caja δεν αλλάζουν τα θέματα και στο πλαίσιο και στα εικονίδια,ξερό γκρι τύπου win και καφέ εικονίδια gnome.

    1. update 07/07/2017 μετά από εγκατάσταση άλλου file manager (thunar) και ορισμό του σε default μετά την επανεκκίνηση τρέχει o caja ,επανήλθαν όλα όπως πριν αλλά δεν είναι αυτός default file manager!!!!

    2. Προφανώς o thunar έγινε ο default. Απο τις ρυθμίσεις του συστήματος μπορείς να ορίσεις πιο θα είναι

  4. Όντως, υπήρξε μια εμφανής διαφορά στην απόδοση, σαν να ανασαίνει καλύτερα το σύστημα (Q6600, 4giga Ram). Και κανένα πρόβλημα, όλα έτρεξαν νερό!
    Τόσο μου άρεσε, που λέω δεν δοκιμάζω και κανένα πυρήνα που να έχει ΚΑΙ τον bfs scheduler!
    Οπότε μεταπήδησα σε γειτονικό blog και τώρα που γράφω, δοκιμάζω τον linux-bb πυρήνα του nick (4.4.053 version) χε, χε…

    Εντωμεταξύ τι να πούμε, με τα συνεχή updates μας αποστόμωσες!

  5. @nikth76 Για κάποιο λόγο δεν τον έχει default τον BFQ παρόλο που του λέω να το κάνει !

    Για δες εδω http://oi65.tinypic.com/2lc0kdw.jpg

    [UPDATE]: Αφαίρεσα και την γραμμή scsi_mod.use_blk_mq=y dm_mod.use_blk_mq=y για να μην φορτώνει το BLK framwork, δοκίμασα και τον kyber scheduler (της FACEBOOK) αλλά επιμένει να έχει τον «mq-deadline» ως scheduler. Φαίνεται οτι αν κάποιο patch δεν είναι μέσω του BLK δεν θα αναγνωρίζεται.

    Τώρα, ή στραβός είναι ο γιαλός, η στραβά αρμενίζουμε και οι δύο :)

    1. Δεν ξέρω τι έχουν κάνει με αυτόν τον πυρήνα και τα Frameworks τους :P
      Ο παραδοσιακός τρόπος δεν ισχύει πλέον, στο config δεν υπάρχει πουθενά ρύθμιση ώστε να θέσεις τον BFQ ως default. Αυτό πρέπει να γίνει μετά τη φόρτωση του πυρήνα (post kernel). Σε αυτόν που δοκίμασες το scsi_mod.use_blk_mq=y το έχω ήδη ρυθμίσει , πχ δες το changelog, SCSI: use blk-mq I/O path by default=[y].
      Μου φαίνεται ότι θα χτίζω από εδώ και πέρα (4.12 + ) τον πυρήνα ως έχει με εντελώς default config και κανένα patch. Απλά θα είναι διαθέσιμος ο τελευταίος πυρήνας για το 16.04. Τίποτε άλλο.

    2. Ναι έτσι όπως τα έχουν κάνει όλα πάνε περίπατο. Θα δούμε τι θα κάνουν και αυτοί του lyqoris Linux που το κάνουν χρόνια

  6. Να κάνω μια μικρή ενημέρωση, το τι έκανα μιας και χρειάστηκε να περάσω εκ νέου την ρύθμιση για τον bfq!
    (Το παρακάτω, έγινε με την έκδοση πυρήνα 4.14.0.20-mub).
    Αρχικά, πέρασα την ρύθμιση στον grub: «sudo nano /etc/default/grub»
    Tην γραμμή που λέει το άρθρο, την έκανα ώς εξής:
    GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash scsi_mod.use_blk_mq=y dm_mod.use_blk_mq=y»
    Η παράμετρος elevator=bfq, είναι περιττή, από ότι φαίνεται.
    Μετά έτρεξα sudo update-grub…
    Επιπλέον, έκανα το εξής:
    sudo nano /etc/udev/rules.d/60-scheduler.rules
    Και μέσα έγραψα:
    ACTION==»add|change», KERNEL==»sd[!0-9]|sr«, ATTR{queue/scheduler}=»bfq»
    Αποθήκευσα.

    sudo udevadm control –reload
    sudo udevadm trigger

    Αυτό ήταν!

    Με cat /sys/block/sda/queue/scheduler, έχω:
    mq-deadline kyber [bfq] none

    Περισσότερες πληροφορίες:
    https://unix.stackexchange.com/questions/375600/how-to-enable-and-use-the-bfq-scheduler

    2 σχολιάκια που αξίζουν παράθεσης, από το ανωτέρω λινκ:
    It is important to note that enabling blk_mq turn it impossible to use non blk_mq schedulers, so you will lose noop cfq and the non mq deadline <—Βλέπετε στους δικόύς μου schedulers, δεν εμφανίζει τους cfq κλπ!

    Apparently blk_mq scheduling system is not supporting elevator flags in grub, udev rules can be used instead, with a bonus of offering a more grained control. <— Γιαυτό είναι περιττή η παράμετρος elevator=bfq στον grub, και τον ορισμό τον κάνει μέσα από udev rule, οπότε και εμφανίζει τον bfq, αλλιώς μου έβγαζε ως επιλεγμένο τον mq-deadline, παρόλο που φαινόταν ο bfq ως default!

  7. Έγραψα σχόλιο με το πώς ενεργοποίησα το bfq σε 4.14-mub kernel και δεν το πήρε…
    Ποοοοοο….άντε να το ξαναγράψω τώρα!!!
    Τέλος πάντων συνοψίζοντας, η παράμετρος elevator=bfq στον grub είναι περιττή καθώς δεν κάνει τίποτα, και για να βλέπουμε τον bfq σαν επιλεγμένο πρέπει να φτιάξουμε udev rule.
    Επίσης αν επιλέξουμε το blk mq framework οι μή blk mq schedulers δεν θα εμφανίζονται πλέον καθόλου (πχ cfq!).

    1. Sorry για κάποιον λόγο σε τσίμπησε ο spamfighter :) Τώρα πρέπει να φαίνονται τα σχόλια που έκανες

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

Ο ιστότοπος χρησιμοποιεί το Akismet για την εξάλειψη των ανεπιθύμητων σχολίων. Μάθετε πως επεξεργάζονται τα δεδομένα των σχολίων σας.

Create a website or blog at WordPress.com

ΠΑΝΩ ↑

Αρέσει σε %d bloggers: