Pentru a face o poveste lungă scurtă, acum câteva zile unul dintre dezvoltatorii de nucleu a încărcat un patch (200 de linii de cod) care au permis îmbunătățirea considerabilă (de aproape 10 ori) a performanței sistemului, mai ales atunci când se ocupă de multitasking în timpul executării unei sarcini grele (cum ar fi compilarea nucleului). Linus a felicitat acest dezvoltator pentru contribuția sa excelentă. Cu toate acestea, un dezvoltator Red Hat, Lennar Poettering nu a fost de acord să implementeze această îmbunătățire direct din nucleu; era mai bine pentru el să facă schimbările în spațiul utilizatorului (~ / .bashrc). Linus s-a enervat și l-a criticat pe acest dezvoltator, spunându-i că rezultatele vorbesc de la sine. Lennar, în loc să răspundă cu cuvinte dure, s-a așezat și a gândit o alternativă (care nu are nevoie să corecte nucleul) și care ocupă doar 4 linii. În cele din urmă, l-au închis pe Linus ... |
Notă: această metodă necesită suport pentru grupuri de sarcini din nucleul Linux (cgroups), adică numai utilizatorii cu nucleul mai mare de 2.6.36 îl pot aplica.
Cum se aplică patch-ul în Fedora
1. - Editați fișierul ~ / .bashrc.
gedit ~ / .bashrc
2. - Lipiți următorul cod la sfârșitul fișierului:
dacă ["$ PS1"]; atunci
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / tasks
fi
3. - Rulați următoarele comenzi:
mount -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / user
Cum se aplică patch-ul în Ubuntu
În Ubuntu lucrurile sunt puțin mai complicate ...
1. - Editați fișierul rc.local cu această comandă:
sudo gedit /etc/rc.local
și lipiți înainte de unde scrie „exit 0”, următoarele:
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / user
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
2. - Salvați fișierul și dați-i permisiunile de executare:
sudo chmod + x /etc/rc.local
3. - Editați fișierul ~ / .bashrc:
gedit ~ / .bashrc
4. - Lipiți următorul cod la sfârșitul fișierului:
dacă ["$ PS1"];
apoi mkdir -m 0700 / dev / cgroup / cpu / user / $$
ecou $$> / dev / cgroup / cpu / user / $$ / tasks
echo "1"> / dev / cgroup / cpu / user / $$ / notification_on_release
fi
5. - Modificați fișierul cgroup_clean:
sudo gedit / usr / local / sbin / cgroup_clean
6. - Lipiți următorul cod la sfârșitul fișierului:
# / Bin / sh
if ["$ *"! = "/ user"]; atunci
rmdir / dev / cgroup / cpu / $ *
fi
7. - Salvați fișierul și dați-i permisiunile de executare:
sudo chmod + x / usr / local / sbin / cgroup_clean
8. - Reporniți sistemul.
Notă: dacă vedeți folderul / dev / cgroup /, veți observa o îmbunătățire considerabilă în gestionarea multitasking-ului.
Am găsit instrucțiunile pentru Arch, sunt aici: http://pastebin.com/raw.php?i=sHRYRuAN
La rândul meu, am aplicat patch-ul, multe îmbunătățiri nu observ în general, dar dacă observați o schimbare mare atunci când derulați paginile web, acestea sunt foarte fluide pentru prima dată !!! =)
Grozav! Vă mulțumesc foarte mult pentru distribuire!
Ți-am spus că căutăm oameni care folosesc Arch pentru blog? Dacă sunteți interesat, scrieți-ne hai să folosim linux@gmail.com
O îmbrățișare mare! Paul.
Mulțumim pentru invitație, apoi vom continua prin poștă apoi 😉
Din întâmplare, nu vor exista instrucțiuni pentru Archlinux, nu? 🙂
Nu le-am găsit. Dar ceva îmi spune că sigur este mai mult ca Fedora. Pe de altă parte, trebuie avut în vedere faptul că, pe măsură ce toată lumea asamblează Arch așa cum dorește, poate asta influențează procedura care trebuie urmată ...
Aici am găsit cum să le aplic în Archlinux, este destul de similar cu fedora: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / tasks: Fișierul sau directorul nu există
Am urmat aceste instrucțiuni și îmi tot spune această eroare la deschiderea terminalului AMD64 x dacă are ceva de făcut
L-am găsit deja, vă rog Pablo să-l corecteze http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Ce trebuie să faceți în Ubuntu - în loc de ceea ce puneți - este:
sudo gedit / usr / local / sbin / cgroup_clean
și puneți acest lucru:
# / Bin / sh
if ["$ *"! = "/ user"]; atunci
rmdir / dev / cgroup / cpu / $ *
fi
Gata! Corectat! Mulțumesc!
Este adevarat! Mulțumesc că mi-ai amintit!
Tocmai am adăugat acea clarificare la începutul postării.
O imbratisare! Paul.
Mai exact, ce beneficii voi obține ca utilizator și ce îmbunătățiri de performanță vor fi văzute în sistemul meu.
Totul merge mult mai repede. Cu toate acestea, diferențele sunt cu adevărat „văzute” atunci când faceți o sarcină grea și doriți să faceți alte sarcini în același timp. De exemplu, rulați instalarea mai multor programe sau compilați nucleul sau editați un videoclip greu și în același timp doriți să navigați pe internet sau să vizionați un film etc.
Spuneți-mi dacă aflați cum să implementați patch-ul în Arch. Aș încerca să rulez cel care funcționează în Fedora.
Îmbrăţişare! Paul.
Cred că asta depinde de modul în care îți folosești computerul. Dacă abia folosiți internetul și un editor de text ușor ... nu veți „simți” diferența. Pe de altă parte, dacă sunteți ca mine și faceți sarcini grele (cum ar fi conversia videoclipurilor, compilarea nucleului etc.) în timp ce navigați pe internet sau vizionați filme, puteți face diferența.
După toți pașii, când deschid terminalul, primesc întotdeauna următoarele:
mkdir: Nu se poate crea directorul "/ dev / cgroup / cpu / user / 1844": Fișierul sau directorul nu există
bash: / dev / cgroup / cpu / user / 1844 / tasks: Fișierul sau directorul nu există
bash: / dev / cgroup / cpu / user / 1844 / notification_on_release: Fișierul sau directorul nu există
domingopv @ pc1: ~ $
Totul funcționează bine chiar și la terminal, ai greșit ceva?
Hmm ... chiar nu știu ce poate fi. Cu toate acestea, am impresia că este foarte probabil că nu ați făcut bine câțiva pași, de la 5 în special, în special. Încercați să le repetați sau să vă asigurați că le-ați înțeles corect. La asta mă pot gândi deocamdată.
O îmbrățișare mare! Paul.
Reinstalați maverick și reinstalați patch-ul și acum primesc următoarele.
mkdir: Nu se poate crea directorul "/ dev / cgroup / cpu / user / 1678": Fișierul sau directorul nu există
bash: / dev / cgroup / cpu / user / 1678 / tasks: Fișierul sau directorul nu există
bash: / dev / cgroup / cpu / user / 1678 / notification_on_release: Fișierul sau directorul nu există
domingopv @ pc1: ~ $
Uyy .. Chiar nu știu ce poate fi. A funcționat perfect pentru mine.
Ceva îmi spune că curățarea grupului nu funcționează bine. De aceea am insistat să vedeți încă de la pasul 5.
Noroc! Paul.
Mama mea, impresionantă, pot vedea videoclipuri flash 1080p pe un nvidia 8400 pasiv, adică, rău rău, PERFECT, cpusul funcționează, uffff minunat, care se îmbunătățește, este mult mai bine, am Ubuntu 10.04 😀 atât de bine, videoclipurile sunt bune pentru mine hahaha 😀
Ce rc.local? Există mai multe, care este? Salutari.
Tocmai am scris comenzile enumerate la punctul 4. Nu trebuie să copiați acest lucru într-un fișier, ci să rulați acele comenzi.
Noroc! Paul.
Este prost explicat.
Ce trebuie să faceți este să editați fișierul rc.local cu:
sudo gedit /etc/rc.local
Trebuie să lipiți în interior (înainte de ieșirea 0):
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / user
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
Aceasta este problema. Acești pași sunt prost explicați.
Ai dreptate! Se spune clar „editați fișierul rc.local”. Ceea ce lipsea de adăugat este comanda de a face așa ceva (despre care unii ar putea să nu știe). Îl adaug chiar acum.
Mulțumesc pentru anunț! Noroc! Paul.
Care ar fi procedura din PCLinuxOs?
Adevărul este că nu știu ...
Dacă aflați, nu uitați să împărtășiți datele cu restul!
Va multumesc foarte mult!
Noroc! Paul.
Mi se pare sau nu ai pus nicio referință de unde ai obținut-o? Ai putea să-mi spui sursa?
Mulţumiri
Nu există o singură sursă. Căutam cum să o fac din diferite surse și din propria mea experiență personală. În termeni generali, vă pot spune că sursele sunt milioane de bloguri care au reprodus acele știri. Căutați „patch 200 linii de kernel linux” și veți vedea despre ce vorbesc. Nu-mi amintesc exact, dar este posibil ca partea Ubuntu să fi fost obținută din WebUpd8; nu așa pentru Fedora.
Sunt un utilizator de nu demult, de ubuntu pe 64 de biți și când văd acest sfat încep să investighez și kernelul actual pe care îl am este 2.6.32-27 conform postării, acest patch poate fi aplicat doar kernelurilor care sunt mai mari sau egale la 2.6.36 Întrebarea mea este dacă această schimbare funcționează doar pentru distribuții pe 32 de biți sau în distribuția mea actuală, kernelul poate fi actualizat la 2.6.36?
Vă mulțumim pentru toate informațiile de pe web, materiale excelente.
Această modificare funcționează pe 32 și 64 de biți, deopotrivă.
Noroc! Paul.
la o întrebare, iar acest lucru nu s-ar încurca cu nicio actualizare ulterioară?
Dacă nu ar merge bine, care ar fi cel mai rău care s-ar putea întâmpla?
(Vedeți că doar trecerea de la un Ubuntu 10.04 la un 10.10 strică totul)
Primul lucru care ar trebui clarificat (pentru a evita utilizarea iresponsabilă a metodei) este că necesită suport pentru grupuri de sarcini din nucleul Linux (cgroups), adică numai utilizatorii cu nucleul mai mare de 2.6.36 ar putea aplica această metodă de îmbunătăţire.