Da skratim priču, prije nekoliko dana jedan od programera jezgre prenio je zakrpu (200 redaka koda) koji je omogućio da se znatno (gotovo 10 puta) poboljšaju performanse sustava, posebno kada se radi o multitaskingu tijekom izvođenja teškog zadatka (kao što je sastavljanje jezgre). Linus je čestitao ovom programeru na velikom doprinosu. Međutim, programer Red Hat-a, Lennar Poettering se nije složio implementirati to poboljšanje izravno iz jezgre; bilo mu je bolje da izvrši promjene u korisničkom prostoru (~ / .bashrc). Linus se naljutio i prevario ovog programera, rekavši mu da rezultati govore sami za sebe. Lennar je, umjesto da odgovori grubim riječima, sjeo i smislio alternativa (koja ne treba krpati jezgru) i koja zauzima samo 4 retka. U konačnici su ušutkali Linusa ... |
Napomena: ova metoda zahtijeva podršku za grupe zadataka u Linuxu kernelu (cgroups), odnosno samo korisnici s jezgrom starijom od 2.6.36 mogli bi je primijeniti.
Kako primijeniti zakrpu u Fedori
1. - Uredite datoteku ~ / .bashrc.
gedit ~ / .bashrc
2. - Na kraj datoteke zalijepite sljedeći kod:
if ["$ PS1"]; zatim
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / tasks
fi
3. - Izvedite sljedeće naredbe:
montiraj -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / user
Kako primijeniti zakrpu u Ubuntuu
U Ubuntuu su stvari malo složenije ...
1. - Uredite datoteku rc.lokalno s ovom naredbom:
sudo gedit /etc/rc.local
i zalijepite prije mjesta gdje piše "izlaz 0", sljedeće:
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. - Spremite datoteku i dajte joj dopuštenja za izvršavanje:
sudo chmod + x /etc/rc.local
3. - Uredite datoteku ~ / .bashrc:
gedit ~ / .bashrc
4. - Na kraj datoteke zalijepite sljedeći kod:
if ["$ PS1"];
zatim mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ / tasks
echo "1"> / dev / cgroup / cpu / user / $$ / notify_on_release
fi
5. - Izmijenite datoteku cgroup_clean:
sudo gedit / usr / local / sbin / cgroup_clean
6. - Na kraj datoteke zalijepite sljedeći kod:
# / Bin / sh
if ["$ *"! = "/ korisnik"]; zatim
rmdir / dev / cgroup / cpu / $ *
fi
7. - Spremite datoteku i dajte joj dopuštenja za izvršavanje:
sudo chmod + x / usr / local / sbin / cgroup_clean
8. - Ponovo pokrenite sustav.
Napomena: ako vidite mapu / dev / cgroup /, primijetit ćete znatno poboljšanje upravljanja multitaskingom.
Pronašao sam upute za Arch, one su ovdje: http://pastebin.com/raw.php?i=sHRYRuAN
Sa svoje strane sam primijenio zakrpu, mnogo poboljšanja uopće ne primjećujem, ali ako primijetite veliku promjenu prilikom pomicanja web stranica, oni su po prvi puta stvarno fluidni !!! =)
Sjajno! Najljepše hvala na dijeljenju!
Jesam li vam rekao da tražimo ljude koji koriste Arch za blogovanje? Ako ste zainteresirani, pišite nam hajde uselinux@gmail.com
Veliki zagrljaj! Pavao.
Zahvaljujemo na pozivu, a onda ćemo nastaviti poštom then
Slučajno neće biti uputa za Archlinux, zar ne? 🙂
Nisam ih našao. Ali nešto mi govori da je to više poput Fedore. S druge strane, treba imati na umu da, kako svi okupljaju Arch kako žele, možda to utječe na postupak koji treba slijediti ...
Ovdje sam pronašao kako ih primijeniti u Archlinuksu, prilično je sličan Fedori: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / tasks: Datoteka ili direktorij ne postoji
Slijedio sam ove upute i neprestano mi govori o ovoj pogrešci prilikom otvaranja terminala AMD64 x ako nešto mora učiniti
Već sam ga pronašao, molim te, pablo ga ispravi http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Što učiniti u ubuntuu - umjesto onoga što ste stavili - je:
sudo gedit / usr / local / sbin / cgroup_clean
i stavite ovo:
# / Bin / sh
if ["$ *"! = "/ korisnik"]; zatim
rmdir / dev / cgroup / cpu / $ *
fi
Spreman! Ispravljeno! Hvala vam!
Istina je! Hvala što ste me podsjetili!
Upravo sam dodao to pojašnjenje na početku posta.
Zagrljaj! Pavao.
Točnije, kakve ću koristi imati kao korisnik i koja će se poboljšanja performansi vidjeti u mom sustavu.
Sve ide puno brže. Međutim, razlike se stvarno "vide" kada radite težak zadatak i želite istodobno raditi i druge zadatke. Na primjer, izvodite instalaciju nekoliko programa ili sastavljate jezgru ili uređujete težak video, a istodobno želite surfati internetom ili gledati film itd.
Javite mi ako saznate kako implementirati zakrpu u Arch. Pokušao bih pokrenuti onu koja radi u Fedori.
Zagrliti! Pavao.
Pretpostavljam da to ovisi o načinu na koji koristite računalo. Ako se jedva služite internetom i nekim uređivačem laganog teksta ... nećete "osjetiti" razliku. S druge strane, ako ste poput mene i obavljate teške zadatke (poput pretvaranja videozapisa, sastavljanja jezgre itd.) Dok pregledavate internet ili gledate filmove, možete primijetiti razliku.
Nakon svih koraka, kada otvorim terminal, uvijek dobijem sljedeće:
mkdir: ne može stvoriti direktorij "/ dev / cgroup / cpu / user / 1844": Datoteka ili direktorij ne postoji
bash: / dev / cgroup / cpu / user / 1844 / zadaci: Datoteka ili direktorij ne postoji
bash: / dev / cgroup / cpu / user / 1844 / notify_on_release: Datoteka ili direktorij ne postoji
domingopv @ pc1: ~ $
Sve funkcionira u redu čak i na terminalu, jeste li nešto pogriješili?
Mmmm ... stvarno ne znam što to može biti. Međutim, imam dojam da je vrlo vjerojatno da neke korake niste učinili dobro, posebno od 5 nadalje. Pokušajte ih ponoviti ili provjerite jeste li ih dobro shvatili. To je sve čega se zasad mogu sjetiti.
Veliki zagrljaj! Pavao.
Ponovo instalirajte maverick i ponovo instalirajte zakrpu i sada dobivam sljedeće.
mkdir: ne može stvoriti direktorij "/ dev / cgroup / cpu / user / 1678": Datoteka ili direktorij ne postoji
bash: / dev / cgroup / cpu / user / 1678 / zadaci: Datoteka ili direktorij ne postoji
bash: / dev / cgroup / cpu / user / 1678 / notify_on_release: Datoteka ili direktorij ne postoji
domingopv @ pc1: ~ $
Uyy .. Stvarno ne znam što to može biti. Uspjelo mi je savršeno.
Nešto mi govori da čišćenje cgroupa ne funkcionira dobro. Zato sam inzistirao da vidite od koraka 5 nadalje.
Živjeli! Pavao.
Moja majko, impresivno, mogu vidjeti 1080p flash videozapise na pasivnoj nvidiji 8400, mislim, loše loše, SAVRŠENO, cpus sve radi, divan uffff, to se poboljšava, puno je bolje, imam Ubuntu 10.04 😀 dobar, videozapisi su mi dobri hahaha 😀
Koji rc.local? Postoji nekoliko, što je to? Pozdrav.
Upravo sam napisao naredbe navedene u točki 4. To ne morate kopirati u datoteku, već ih izvodite.
Živjeli! Pavao.
To je slabo objašnjeno.
Ono što morate učiniti je urediti datoteku rc.local pomoću:
sudo gedit /etc/rc.local
Morate zalijepiti unutra (prije izlaza 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
To je problem. Ti su koraci slabo objašnjeni.
U pravu si! Jasno stoji: "uredite datoteku rc.local". Ono što je nedostajalo za dodavanje je naredba za takvo što (što neki možda i ne znaju). Trenutno ga dodajem.
Hvala na obavijesti! Živjeli! Pavao.
Kakav bi bio postupak u PCLinuxOs?
Istina je da ne znam ...
Ako saznate, ne zaboravite podijeliti podatke s ostalima!
Hvala vam puno!
Živjeli! Pavao.
Čini mi se ili niste naveli referencu odakle ste ga dobili? Možete li mi reći izvor?
hvala
Ne postoji jedan izvor. Tražio sam kako to učiniti iz različitih izvora i iz svog osobnog iskustva. Općenito govoreći, mogu vam reći da su izvori milijuni blogova koji su reproducirali te vijesti. Potražite "patch 200 linux kernel lines" i vidjet ćete o čemu pričam. Ne sjećam se točno, ali Ubuntu dio možda je nabavljen od WebUpd8; nije tako za Fedoru.
Korisnik sam ne tako davno, ubuntu 64 bita i kad vidim ovaj savjet, počinjem istraživati, a trenutni kernel koji imam je 2.6.32-27 prema postu, ova se zakrpa može primijeniti samo na kernele koji su veće ili jednake 2.6.36 Moje pitanje je ako ova promjena radi samo za 32 bitne distro-ove ili se u mojoj trenutnoj distro-jezgri jezgra može ažurirati na 2.6.36?
Hvala na svim informacijama na webu, izvrsnom materijalu.
Ova promjena jednako vrijedi za 32 i 64 bita.
Živjeli! Pavao.
na pitanje, a to se ne bi zabrljalo s kasnijim ažuriranjima?
Da nije išlo dobro, što bi bilo najgore što bi se moglo dogoditi?
(Vidite da onda samo prelazak s Ubuntu 10.04 na 10.10 sve ruši)
Prvo što treba razjasniti (da bi se izbjegla neodgovorna uporaba metode) jest da zahtijeva podršku za grupe zadataka u Linuxu kernelu (cgroups), odnosno samo bi korisnici s jezgrom većom od 2.6.36 mogli primijeniti ovu metodu poboljšanja.