Για να κάνω μια μακρά ιστορία σύντομη, πριν από λίγες ημέρες ένας από τους προγραμματιστές του πυρήνα ανέβασε μια ενημέρωση κώδικα (200 γραμμές κώδικα) που επέτρεψαν να βελτιωθεί σημαντικά (σχεδόν 10 φορές) η απόδοση του συστήματος, ειδικά όταν αντιμετωπίζετε πολλαπλές εργασίες κατά την εκτέλεση μιας βαριάς εργασίας (όπως η μεταγλώττιση του πυρήνα). Ο Linus συγχαίρει αυτόν τον προγραμματιστή για τη μεγάλη του συμβολή. Ωστόσο, ένας προγραμματιστής Red Hat, Ο Lennar Poettering δεν συμφώνησε να εφαρμόσει αυτή τη βελτίωση απευθείας από τον πυρήνα. ήταν καλύτερο για αυτόν να κάνει τις αλλαγές στο χώρο του χρήστη (~ / .bashrc). Ο Linus θυμώθηκε και χτύπησε αυτόν τον προγραμματιστή, λέγοντάς του ότι τα αποτελέσματα μίλησαν από μόνα τους. Ο Λένναρ, αντί να απαντήσει με σκληρά λόγια, κάθισε και σχεδίασε μια εναλλακτική λύση (που δεν χρειάζεται να επιδιορθώσει τον πυρήνα) και καταλαμβάνει μόνο 4 γραμμές. Τελικά, έκλεισαν τον Linus ... |
Σημείωση: αυτή η μέθοδος απαιτεί υποστήριξη για ομάδες εργασιών στο Linux Kernel (cgroups), δηλαδή, μόνο οι χρήστες με Kernel υψηλότερο από 2.6.36 θα μπορούσαν να το εφαρμόσουν.
Πώς να εφαρμόσετε το έμπλαστρο στο Fedora
1. - Επεξεργαστείτε το αρχείο ~ / .bashrc.
gedit ~ / .bashrc
2. - Επικολλήστε τον ακόλουθο κώδικα στο τέλος του αρχείου:
εάν ["$ PS1"]; τότε
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / εργασίες
fi
3. - Εκτελέστε τις ακόλουθες εντολές:
mount -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / χρήστης
Πώς να εφαρμόσετε την ενημέρωση κώδικα στο Ubuntu
Στο Ubuntu τα πράγματα είναι λίγο πιο περίπλοκα ...
1. - Επεξεργαστείτε το αρχείο rc. τοπικό με αυτήν την εντολή:
sudo gedit /etc/rc.local
και επικολλήστε πριν που λέει "έξοδος 0", τα εξής:
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / χρήστης
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
2. - Αποθηκεύστε το αρχείο και δώστε του δικαιώματα εκτέλεσης:
sudo chmod + x /etc/rc.local
3. - Επεξεργαστείτε το αρχείο ~ / .bashrc:
gedit ~ / .bashrc
4. - Επικολλήστε τον ακόλουθο κώδικα στο τέλος του αρχείου:
εάν ["$ PS1"];
τότε mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ / task
echo "1"> / dev / cgroup / cpu / user / $$ / notify_on_release
fi
5. - Τροποποιήστε το αρχείο cgroup_clean:
sudo gedit / usr / local / sbin / cgroup_clean
6. - Επικολλήστε τον ακόλουθο κώδικα στο τέλος του αρχείου:
#! / Bin / sh
αν ["$ *"! = "/ χρήστης"]; τότε
rmdir / dev / cgroup / cpu / $ *
fi
7. - Αποθηκεύστε το αρχείο και δώστε του δικαιώματα εκτέλεσης:
sudo chmod + x / usr / local / sbin / cgroup_clean
8. - Επανεκκινήστε το σύστημα.
Σημείωση: εάν δείτε το / dev / cgroup / φάκελο, θα παρατηρήσετε σημαντική βελτίωση στη διαχείριση πολλαπλών εργασιών.
Βρήκα τις οδηγίες για το Arch, είναι εδώ: http://pastebin.com/raw.php?i=sHRYRuAN
Από την πλευρά μου, εφάρμοσα το έμπλαστρο, πολύ βελτίωση δεν παρατηρώ γενικά, αλλά αν παρατηρήσετε μια μεγάλη αλλαγή κατά την κύλιση στις ιστοσελίδες, είναι πραγματικά ρευστές για πρώτη φορά !!! =)
Εξαιρετική! Ευχαριστώ πολύ για την κοινή χρήση!
Σας είπα ότι ψάχνουμε για άτομα που χρησιμοποιούν το Arch στο blog; Αν σας ενδιαφέρει, γράψτε σε ας uselinux@gmail.com
Μια μεγάλη αγκαλιά! Παύλος.
Ευχαριστώ για την πρόσκληση, τότε θα συνεχίσουμε μέσω ταχυδρομείου 😉
Κατά πάσα πιθανότητα δεν θα υπάρχουν οδηγίες για το Archlinux, σωστά; 🙂
Δεν τα βρήκα. Αλλά κάτι μου λέει ότι σίγουρα μοιάζει περισσότερο με τη Fedora. Από την άλλη πλευρά, πρέπει να έχουμε κατά νου ότι καθώς όλοι συναρμολογούν το Arch όπως θέλουν, ίσως αυτό επηρεάζει τη διαδικασία που πρέπει να ακολουθηθεί ...
Εδώ βρήκα πώς να τα εφαρμόσω στο Archlinux, μοιάζει πολύ με το fedora: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / tasks: Το αρχείο ή ο κατάλογος δεν υπάρχει
Ακολούθησα αυτές τις οδηγίες και συνεχίζει να μου λέει αυτό το σφάλμα κατά το άνοιγμα του τερματικού AMD64 x εάν έχει κάτι να κάνει
Το βρήκα ήδη, παρακαλώ διορθώστε το http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Τι πρέπει να κάνετε στο ubuntu - αντί για αυτό που βάζετε - είναι:
sudo gedit / usr / local / sbin / cgroup_clean
και βάλτε το:
#! / Bin / sh
αν ["$ *"! = "/ χρήστης"]; τότε
rmdir / dev / cgroup / cpu / $ *
fi
Ετοιμος! Διορθώθηκε! Ευχαριστώ!
Είναι αλήθεια! Ευχαριστώ που μου το θύμησες!
Μόλις πρόσθεσα αυτήν την αποσαφήνιση στην αρχή της ανάρτησης.
Μια αγκαλιά! Παύλος.
Συγκεκριμένα, ποια οφέλη θα λάβω ως χρήστης και ποιες βελτιώσεις στην απόδοση θα εμφανίζονται στο σύστημά μου.
Όλα πάνε πολύ πιο γρήγορα. Ωστόσο, οι διαφορές είναι πραγματικά «εμφανείς» όταν κάνετε μια βαριά εργασία και θέλετε να κάνετε άλλες εργασίες ταυτόχρονα. Για παράδειγμα, εκτελείτε την εγκατάσταση πολλών προγραμμάτων ή μεταγλωττίζετε τον πυρήνα ή επεξεργάζεστε ένα βαρύ βίντεο και ταυτόχρονα θέλετε να σερφάρετε στο Διαδίκτυο ή να παρακολουθείτε μια ταινία κ.λπ.
Επιτρέψτε μου να ξέρω αν μάθετε πώς να εφαρμόσετε την ενημέρωση κώδικα στο Arch. Θα προσπαθούσα να τρέξω αυτό που λειτουργεί στο Fedora.
Αγκαλιάζω! Παύλος.
Υποθέτω ότι εξαρτάται από τη χρήση που δίνετε στον υπολογιστή σας. Εάν χρησιμοποιείτε μόλις το Διαδίκτυο και κάποιο πρόγραμμα επεξεργασίας ελαφρού κειμένου ... δεν θα "αισθανθείτε" τη διαφορά. Από την άλλη πλευρά, εάν είστε σαν εμένα και κάνετε βαριές εργασίες (όπως μετατροπή βίντεο, μεταγλώττιση του πυρήνα κ.λπ.) κατά την περιήγηση στο Διαδίκτυο ή την παρακολούθηση ταινιών, μπορείτε να πείτε τη διαφορά.
Μετά από όλα τα βήματα, όταν ανοίγω το τερματικό παίρνω πάντα τα εξής:
mkdir: Δεν είναι δυνατή η δημιουργία καταλόγου "/ dev / cgroup / cpu / user / 1844": Δεν υπάρχει αρχείο ή κατάλογος
bash: / dev / cgroup / cpu / user / 1844 / task: Το αρχείο ή ο κατάλογος δεν υπάρχει
bash: / dev / cgroup / cpu / user / 1844 / notify_on_release: Το αρχείο ή ο κατάλογος δεν υπάρχει
domingopv @ pc1: ~ $
Όλα λειτουργούν καλά ακόμα και στο τερματικό, κάνατε κάτι λάθος;
Χμμ ... πραγματικά δεν ξέρω τι μπορεί να είναι. Ωστόσο, έχω την εντύπωση ότι είναι πολύ πιθανό ότι δεν έχετε κάνει καλά κάποια από τα βήματα, ειδικά από το 5 και μετά. Δοκιμάστε να τα επαναλάβετε ή να βεβαιωθείτε ότι τα έχετε σωστά. Αυτό είναι το μόνο που μπορώ να σκεφτώ για τώρα.
Μια μεγάλη αγκαλιά! Παύλος.
Επανεγκαταστήστε το maverick και επανεγκαταστήστε την ενημέρωση κώδικα και τώρα έχω τα ακόλουθα.
mkdir: Δεν είναι δυνατή η δημιουργία καταλόγου "/ dev / cgroup / cpu / user / 1678": Δεν υπάρχει αρχείο ή κατάλογος
bash: / dev / cgroup / cpu / user / 1678 / task: Το αρχείο ή ο κατάλογος δεν υπάρχει
bash: / dev / cgroup / cpu / user / 1678 / notify_on_release: Το αρχείο ή ο κατάλογος δεν υπάρχει
domingopv @ pc1: ~ $
Δεν ξέρω τι μπορεί να είναι. Δούλεψε τέλεια για μένα.
Κάτι μου λέει ότι η εκκαθάριση ομάδας δεν έχει γίνει καλά. Γι 'αυτό επέμεινα ότι βλέπετε από το βήμα 5 και μετά.
Στην υγειά σας! Παύλος.
Μητέρα μου, εντυπωσιακή, μπορώ να δω 1080p flash βίντεο σε ένα παθητικό nvidia 8400, εννοώ, κακό κακό, ΤΕΛΕΙΑ, το cpus όλα λειτουργούν, υπέροχο uffff, που βελτιώνεται, είναι πολύ καλύτερο, έχω το Ubuntu 10.04 😀 τόσο καλό, τα βίντεο είναι καλά για μένα χαχαχα 😀
Τι rc.local; Υπάρχουν πολλά, ποια είναι; Χαιρετίσματα.
Μόλις έγραψα τις εντολές που αναφέρονται στο σημείο 4. Δεν χρειάζεται να το αντιγράψετε σε ένα αρχείο αλλά να εκτελέσετε αυτές τις εντολές.
Στην υγειά σας! Παύλος.
Δεν εξηγείται ελάχιστα.
Αυτό που πρέπει να κάνετε είναι να επεξεργαστείτε το αρχείο rc.local με:
sudo gedit /etc/rc.local
Πρέπει να επικολλήσετε μέσα (πριν από την έξοδο 0):
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / χρήστης
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
Αυτό είναι το πρόβλημα. Αυτά τα βήματα δεν εξηγούνται ελάχιστα.
Εχεις δίκιο! Λέει ξεκάθαρα, "επεξεργασία του αρχείου rc.local." Αυτό που έλειπε να προσθέσω είναι η εντολή να κάνουμε κάτι τέτοιο (για το οποίο κάποιοι μπορεί να μην γνωρίζουν). Το προσθέτω τώρα.
Ευχαριστώ για την ειδοποίηση! Χαιρετισμοί! Παύλος.
Ποια θα ήταν η διαδικασία στο PCLinuxOs;
Η αλήθεια είναι ότι δεν ξέρω…
Εάν το μάθετε, μην ξεχάσετε να μοιραστείτε τα δεδομένα με τα υπόλοιπα!
Σας ευχαριστούμε πάρα πολύ!
Στην υγειά σας! Παύλος.
Μου φαίνεται ή δεν έχετε αναφέρει από πού το πήρατε; Μπορείτε να μου πείτε την πηγή;
Ευχαριστίες
Δεν υπάρχει μεμονωμένη πηγή. Έψαχνα πώς να το κάνω από διαφορετικές πηγές και από τη δική μου προσωπική εμπειρία. Σε γενικές γραμμές, μπορώ να σας πω ότι οι πηγές είναι τα εκατομμύρια ιστολογίων που αναπαράγουν αυτές τις ειδήσεις. Αναζητήστε "patch 200 linux kernel lines" και θα δείτε τι μιλάω. Δεν θυμάμαι ακριβώς, αλλά το τμήμα του Ubuntu μπορεί να έχει ληφθεί από το WebUpd8. όχι τόσο για τη Fedora.
Είμαι χρήστης εδώ και πολύ καιρό, του ubuntu 64 bit και όταν βλέπω αυτήν την συμβουλή αρχίζω να ερευνούμαι και ο τρέχων πυρήνας που έχω είναι 2.6.32-27 σύμφωνα με την ανάρτηση, αυτό το patch μπορεί να εφαρμοστεί μόνο σε πυρήνες που είναι υψηλότερο ή ίσο με 2.6.36 Η ερώτησή μου είναι εάν αυτή η αλλαγή λειτουργεί μόνο για διανομές 32 bit ή στην τρέχουσα διανομή μου μπορεί ο πυρήνας να ενημερωθεί σε 2.6.36;
Ευχαριστώ για όλες τις πληροφορίες στον Ιστό, εξαιρετικό υλικό.
Αυτή η αλλαγή λειτουργεί για 32 και 64 bit.
Στην υγειά σας! Παύλος.
σε μια ερώτηση, και αυτό δεν θα χάσει καμία μελλοντική ενημέρωση;
Εάν δεν πήγε καλά, ποιο θα ήταν το χειρότερο που θα μπορούσε να συμβεί;
(Βλέπετε ότι μετά απλώς το Ubuntu 10.04 σε 10.10 συντρίβει τα πάντα)
Το πρώτο πράγμα που πρέπει να αποσαφηνιστεί (για να αποφευχθεί η ανεύθυνη χρήση της μεθόδου) είναι ότι απαιτεί υποστήριξη για ομάδες εργασιών στο Linux Kernel (cgroups), δηλαδή, μόνο χρήστες με Kernel υψηλότερο από 2.6.36 θα μπορούσαν να εφαρμόσουν αυτήν τη μέθοδο βελτίωσης.