Nova zakrpa od 4 linije koja može znatno povećati performanse vašeg sistema

Da skratim priču, prije nekoliko dana jedan od programera kernela je postavio zakrpu (od 200 linija koda) koji je omogućio značajno poboljšanje (skoro 10 puta) performansi sistema, posebno kada se radi o multitaskingu tokom izvršavanja teškog zadatka (kao što je kompajliranje kernela). Linus je čestitao ovom programeru na njegovom velikom doprinosu. Međutim, Red Hat programer, Lennar Poettering se nije složio sa implementacijom ovog poboljšanja direktno iz kernela; Za njega je bilo bolje napraviti promjene u korisničkom prostoru (~/.bashrc). Linus se naljutio i izgrdio ovog programera, rekavši mu da rezultati govore sami za sebe. Lennar je, umjesto da odgovori oštrim riječima, sjeo i smislio alternativa (koja ne zahteva krpljenje kernela) i koja zauzima samo 4 reda. Ukratko, Linus je zatvoren… 

Napomena: ova metoda zahtijeva podršku za grupe zadataka u Linux kernelu (cgroups), to jest, samo korisnici s Kernelom višim od 2.6.36 mogu ga primijeniti.

Kako primijeniti zakrpu u Fedori

1.- Uredite datoteku ~/.bashrc.

gedit ~ / .bashrc

2.- Zalijepite sljedeći kod na kraj datoteke:

if [ "$PS1" ] ; onda
mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$
echo $$ > /sys/fs/cgroup/cpu/user/$$/tasks
fi

3.- Pokrenite sljedeće naredbe:

mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user

Kako primijeniti zakrpu u Ubuntu

U Ubuntu-u stvari su malo komplikovanije...

1.- Uredite datoteku rc.local 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.- Sačuvajte fajl i dajte mu dozvole za izvršavanje:

sudo chmod +x /etc/rc.local

3.- Uredite datoteku ~ / .bashrc:

gedit ~ / .bashrc

4.- Zalijepite sljedeći kod na kraj datoteke:

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.- Zalijepite sljedeći kod na kraj datoteke:

#! / bin / sh
if [ "$*" != "/user" ]; onda
rmdir /dev/cgroup/cpu/$*
fi

7.- Sačuvajte fajl i dajte mu dozvole za izvršavanje:

sudo chmod +x /usr/local/sbin/cgroup_clean

8.- Ponovo pokrenite sistem.

Napomena: ako vidite folder /dev/cgroup/, primijetit ćete značajno poboljšanje u upravljanju više zadataka.

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   thalskarth rekao je

    Našao sam upute za Arch, ovdje su: http://pastebin.com/raw.php?i=sHRYRuAN

    Sa svoje strane sam stavio zakrpu, generalno ne primjećujem mnogo poboljšanja, ali primjećujem veliku promjenu kada skrolujem po web stranicama, zaista rade glatko po prvi put!!! =)

  2.   Koristimo Linux rekao je

    Odlično! Hvala vam puno na dijeljenju!
    Jesam li vam rekao da tražimo ljude koji koriste Arch za blog? Ako ste zainteresovani, pišite nam na hajde uselinux@gmail.com
    Veliki zagrljaj! Paul.

  3.   thalskarth rekao je

    Hvala na pozivu, onda nastavljamo putem e-maila 😉

  4.   thalskarth rekao je

    Igrom slučaja nema instrukcija za Archlinux, zar ne? 🙂

  5.   Koristimo Linux rekao je

    Nisam ih našao. Ali nešto mi govori da je vjerovatno sličniji Fedori. S druge strane, treba imati u vidu da s obzirom da svako gradi Arch kako želi, možda će to uticati na proceduru koja će slediti...

  6.   thalskarth rekao je

    Ovdje sam pronašao kako ih primijeniti u Archlinuxu, prilično je sličan onom u Fedori: http://pastebin.com/raw.php?i=sHRYRuAN

  7.   Miquel Mayol i tur rekao je

    bash: /dev/cgroup/cpu/user/$/tasks: nema takve datoteke ili direktorija

    Slijedio sam ove upute i stalno mi govori ovu grešku kada otvaram AMD64 terminal x ako ima neke veze s tim

  8.   Miquel Mayol i tur rekao je

    Već sam ga našao, molim Pabla da to ispravi http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html

    Ono što morate da uradite u Ubuntu-u – umesto onoga što stavite – jeste:

    sudo gedit /usr/local/sbin/cgroup_clean

    i stavi ovo:

    #! / bin / sh
    if [ «$*» != «/user» ]; onda
    rmdir /dev/cgroup/cpu/$*
    fi

  9.   Koristimo Linux rekao je

    Spremni! Ispravljeno! Hvala ti!

  10.   Koristimo Linux rekao je

    Istina je! Hvala što ste me podsjetili!
    Upravo sam dodao to pojašnjenje na početak posta.
    Zagrljaj! Paul.

  11.   dasinex rekao je

    Konkretno, koje koristi ću imati kao korisnik i kakva poboljšanja performansi će se vidjeti u mom sistemu.

  12.   Koristimo Linux rekao je

    Sve ide mnogo brže. Međutim, razlike se zaista "vide" kada radite težak zadatak i želite da radite druge u isto vrijeme. Na primjer, pokrećete instalaciju nekoliko programa ili kompajlirate kernel ili uređujete težak video, a u isto vrijeme želite surfati internetom ili gledati film, itd.

  13.   Koristimo Linux rekao je

    Javite mi ako shvatite kako implementirati zakrpu u Arch. Pokušao bih pokrenuti onu koja radi u Fedori.
    Zagrljaj! Paul.

  14.   Koristimo Linux rekao je

    Pretpostavljam da to zavisi od toga kako koristite računar. Ako jedva koristite internet i lagani uređivač teksta... nećete "osjetiti" razliku. S druge strane, ako ste poput mene i obavljate teške zadatke (kao što je pretvaranje video zapisa, kompajliranje kernela, itd.) dok pretražujete internet ili gledate filmove, primijetit ćete razliku.

  15.   Sundaypv rekao je

    Nakon što su svi koraci završeni, kada otvorim terminal uvijek dobijem sljedeće:
    mkdir: ne može kreirati direktorij “/dev/cgroup/cpu/user/1844”: datoteka ili direktorij ne postoji
    bash: /dev/cgroup/cpu/user/1844/tasks: nema takve datoteke ili direktorija
    bash: /dev/cgroup/cpu/user/1844/notify_on_release: nema takve datoteke ili direktorija
    domingopv @ pc1: ~ $
    Sve radi dobro čak i terminal, jesam li nešto pogriješio?

  16.   Koristimo Linux rekao je

    Mmmm... Iskreno ne znam šta bi to moglo biti. Međutim, imam utisak da je vrlo vjerovatno da neke od koraka niste uradili ispravno, posebno korake 5 i više. Pokušajte da ih ponovite ili se uvjerite da ste ih uradili kako treba. To je sve čega mogu da se setim za sada.
    Veliki zagrljaj! Paul.

  17.   Sundaypv rekao je

    Ponovo sam instalirao maverick i ponovo instalirao zakrpu i sada dobijam sljedeće.
    mkdir: ne može kreirati direktorij “/dev/cgroup/cpu/user/1678”: datoteka ili direktorij ne postoji
    bash: /dev/cgroup/cpu/user/1678/tasks: nema takve datoteke ili direktorija
    bash: /dev/cgroup/cpu/user/1678/notify_on_release: nema takve datoteke ili direktorija
    domingopv @ pc1: ~ $

  18.   Koristimo Linux rekao je

    Ups...iskreno ne znam šta bi to moglo biti. Meni je savršeno funkcioniralo.
    Nešto mi govori da čišćenje cgroup nije urađeno kako treba. Zato sam insistirao da vidite korak 5 dalje.
    Živjeli! Paul.

  19.   ne kažem rekao je

    O moj bože, impresivno, mogu gledati 1080p flash video na pasivnoj Nvidia 8400, mislim, loše loše, SAVRŠENO, CPU-ovi svi rade, divno uffff, kakvo poboljšanje, mnogo je bolje, imam Ubuntu 10.04 😀 to je super , videi mi idu hahaha 😀

  20.   Delano rekao je

    Šta rc.local? Ima ih nekoliko, koji je? Pozdrav.

  21.   Koristimo Linux rekao je

    Jednostavno sam napisao komande navedene u tački 4. Ne morate to kopirati u datoteku, već izvršiti te komande.
    Živjeli! Paul.

  22.   Savjeti za GNU / Linux rekao je

    Loše je objašnjeno.

    Ono što treba da uradite je da uredite datoteku rc.local sa:

    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 koraci su slabo objašnjeni.

  23.   Koristimo Linux rekao je

    Upravu si! Jasno kaže, "uredite rc.local fajl." Ono što je nedostajalo je komanda da se ovo uradi (što neki možda ne znaju). Odmah ću ga dodati.
    Hvala na obavještenju! Pozdrav! Pablo.

  24.   Aespinoza rekao je

    Kakva bi bila procedura u PCLinuxOs-u?

  25.   Koristimo Linux rekao je

    Istina je da ne znam…
    Ako saznate, ne zaboravite podijeliti podatke sa ostalima!
    Puno vam hvala!
    Živjeli! Paul.

  26.   gonho rekao je

    Da li mi se tako čini ili niste naveli odakle vam to? Možete li mi reći izvor?

    hvala

  27.   Koristimo Linux rekao je

    Ne postoji jedinstven izvor. Tražio sam kako to učiniti iz različitih izvora i iz svog ličnog iskustva. Uopšteno govoreći, mogu vam reći da su izvori milioni blogova koji su reprodukovali tu vest. Potražite "200 line linux kernel patch" i vidjet ćete o čemu govorim. Ne sećam se tačno, ali Ubuntu deo je možda preuzet sa WebUpd8; nije tako sa Fedorom.

  28.   luckyys0921 rekao je

    Ne tako davno sam korisnik Ubuntu 64 bit i kada sam vidio ovaj savjet počeo sam istraživati ​​i trenutni kernel koji imam je 2.6.32-27 prema postu ova zakrpa se može primijeniti samo na kernele koji su viši od ili jednako 2.6.36 Moje pitanje je da li ova promjena funkcionira samo za 32-bitne distro ili u mojoj trenutnoj distribuciji može li se kernel ažurirati na 2.6.36?

    Hvala na svim informacijama na web stranici, odličan materijal.

  29.   Koristimo Linux rekao je

    Ova promjena radi za 32 i 64 bit, podjednako.
    Živjeli! Paul.

  30.   G. Tuxito rekao je

    na pitanje, a ne bi li ovo napravilo zbrku s nekim kasnijim ažuriranjem?
    Ako nije dobro, šta bi bilo najgore što bi se moglo dogoditi?
    (vidite da samo prelazak sa Ubuntu 10.04 na 10.10 sve ruši)

  31.   jesuslara rekao je

    Prva stvar koju treba razjasniti (da bi se izbjegla neodgovorna upotreba metode) je da zahtijeva podršku za grupe zadataka u Linux kernelu (cgroups), odnosno da samo korisnici s Kernelom većim od 2.6.36 mogu primijeniti ovu metodu. poboljšanje.