Trumpai tariant, prieš kelias dienas vienas iš branduolio kūrėjų įkėlė pataisą (iš 200 kodo eilučių), o tai leido žymiai pagerinti (beveik 10 kartų) sistemos našumą, ypač atliekant daugiafunkcinį darbą atliekant sunkią užduotį (pvz., kompiliuojant branduolį). Linus pasveikino šį kūrėją už puikų indėlį. Tačiau „Red Hat“ kūrėjas, Lennar Poettering nesutiko su šio patobulinimo įgyvendinimu tiesiogiai iš branduolio; Jam buvo geriau atlikti vartotojo erdvės pakeitimus (~/.bashrc). Linus supyko ir priekaištavo šiam kūrėjui, sakydamas, kad rezultatai kalba patys už save. Lenaras, užuot atsakęs šiurkščiais žodžiais, atsisėdo ir sumanė alternatyva (kuriai nereikia pataisyti branduolio) ir kuri užima tik 4 eilutes. Trumpai tariant, Linas buvo uždarytas… |
Pastaba: šiam metodui reikalingas Linux branduolio (cgroups) užduočių grupių palaikymas, tai yra, jį gali taikyti tik vartotojai, kurių branduolys yra didesnis nei 2.6.36.
Kaip užklijuoti pleistrą „Fedora“.
1. Redaguokite failą ~/.bashrc.
gedit ~ / .bashrc
2. Įklijuokite šį kodą failo pabaigoje:
jei [ "$PS1" ] ; tada
mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$
echo $$ > /sys/fs/cgroup/cpu/user/$$/tasks
fi
3. Vykdykite šias komandas:
mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user
Kaip pritaikyti pleistrą Ubuntu
Ubuntu viskas yra šiek tiek sudėtingesnė...
1. Redaguokite failą rc.vietinis su šia komanda:
sudo gedit /etc/rc.local
ir įklijuokite prieš tai, kur sakoma „išeiti 0“, taip:
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. Išsaugokite failą ir suteikite jam vykdyti leidimus:
sudo chmod +x /etc/rc.local
3. Redaguokite failą ~ / .bashrc:
gedit ~ / .bashrc
4. Įklijuokite šį kodą failo pabaigoje:
jei [ "$PS1" ] ;
tada mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi
5. Pakeiskite failą cgroup_clean:
sudo gedit /usr/local/sbin/cgroup_clean
6. Įklijuokite šį kodą failo pabaigoje:
#! / Bin / sh
if [ "$*" != "/vartotojas" ]; tada
rmdir /dev/cgroup/cpu/$*
fi
7. Išsaugokite failą ir suteikite jam vykdyti leidimus:
sudo chmod +x /usr/local/sbin/cgroup_clean
8. Perkraukite sistemą.
Pastaba: jei pamatysite aplanką /dev/cgroup/, pastebėsite reikšmingą kelių užduočių valdymo pagerėjimą.
Radau Arch instrukcijas, jos yra čia: http://pastebin.com/raw.php?i=sHRYRuAN
Savo ruožtu užklijavau pleistrą, apskritai didelio pagerėjimo nepastebiu, bet slenkant po internetinius puslapius pastebiu didelį pasikeitimą, jie tikrai pirmą kartą veikia sklandžiai!!! =)
Puiku! Labai ačiū, kad dalinatės!
Ar sakiau, kad ieškome žmonių, kurie tinklaraščiams naudoja Arch? Jei susidomėjote, rašykite mums el naudokime linux@gmail.com
Didelis apkabinimas! Paulius.
Dėkojame už pakvietimą, toliau tęsime el. paštu 😉
Atsitiktinai nėra „Archlinux“ instrukcijų, tiesa? 🙂
Aš jų neradau. Bet kažkas man sako, kad jis tikriausiai labiau panašus į Fedora. Kita vertus, reikia atsižvelgti į tai, kad kadangi kiekvienas stato Arką kaip nori, galbūt tai turės įtakos tvarkai, kurios reikia laikytis...
Čia radau, kaip juos pritaikyti „Archlinux“, jis yra gana panašus į „Fedora“: http://pastebin.com/raw.php?i=sHRYRuAN
bash: /dev/cgroup/cpu/user/$/tasks: Nėra tokio failo ar katalogo
Vykdžiau šias instrukcijas ir ji man vis praneša šią klaidą atidarant AMD64 terminalą x, jei ji turi ką nors bendro su juo
Aš jau radau, prašau Pablo pataisyti http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Ką jūs turite padaryti Ubuntu, o ne tai, ką įdėjote, yra:
sudo gedit /usr/local/sbin/cgroup_clean
ir įdėk tai:
#! / Bin / sh
if [ «$*» != «/vartotojas» ]; tada
rmdir /dev/cgroup/cpu/$*
fi
Pasiruošę! Pataisyta! Ačiū!
Tai tiesa! Ačiū, kad priminėte!
Aš tik pridėjau tą paaiškinimą įrašo pradžioje.
Apkabinimas! Paulius.
Tiksliau, kokią naudą gausiu kaip vartotojas ir kokie našumo patobulinimai bus matomi mano sistemoje.
Viskas vyksta daug greičiau. Tačiau skirtumai tikrai „pasimato“, kai darai sunkią užduotį ir tuo pat metu nori atlikti kitus. Pavyzdžiui, diegiate kelias programas arba kompiliuojate branduolį arba redaguojate sunkų vaizdo įrašą ir tuo pat metu norite naršyti internete ar žiūrėti filmą ir pan.
Praneškite man, jei sugalvosite, kaip įdiegti pataisą Arch. Bandysiu paleisti tą, kuris veikia Fedoroje.
Apkabink! Paulius.
Manau, tai priklauso nuo to, kaip naudojate kompiuterį. Jei beveik nesinaudosite internetu ir lengvu teksto redaktoriumi... skirtumo „nepajusite“. Kita vertus, jei esate panašus į mane ir atliekate sunkias užduotis (pvz., konvertuojate vaizdo įrašus, kompiliuojate branduolį ir pan.) naršydami internete ar žiūrėdami filmus, pastebėsite skirtumą.
Atlikęs visus veiksmus, atidaręs terminalą visada gaunu:
mkdir: negali sukurti katalogo „/dev/cgroup/cpu/user/1844“: failas arba katalogas neegzistuoja
bash: /dev/cgroup/cpu/user/1844/tasks: tokio failo ar katalogo nėra
bash: /dev/cgroup/cpu/user/1844/notify_on_release: Nėra tokio failo ar katalogo
domingopv @ pc1: ~ $
Viskas veikia gerai net terminalas, ar aš padariau kažką ne taip?
Mmmm... Aš nuoširdžiai nežinau, kas tai galėtų būti. Tačiau man susidaro įspūdis, kad labai tikėtina, kad kai kuriuos veiksmus atlikote neteisingai, ypač 5 ir naujesnius veiksmus. Pabandykite juos pakartoti arba įsitikinkite, kad padarėte teisingai. Tai viskas, apie ką kol kas galvoju.
Didelis apkabinimas! Paulius.
Iš naujo įdiegiau „maverick“ ir iš naujo įdiegiau pataisą, o dabar gaunu šiuos dalykus.
mkdir: negali sukurti katalogo „/dev/cgroup/cpu/user/1678“: failas arba katalogas neegzistuoja
bash: /dev/cgroup/cpu/user/1678/tasks: tokio failo ar katalogo nėra
bash: /dev/cgroup/cpu/user/1678/notify_on_release: Nėra tokio failo ar katalogo
domingopv @ pc1: ~ $
Oi... Aš nuoširdžiai nežinau, kas tai galėtų būti. Man tai puikiai veikė.
Kažkas man sako, kad cgroup išvalymas atliktas netinkamai. Štai kodėl aš primygtinai reikalavau, kad pamatytumėte 5 žingsnį ir toliau.
Cheers! Paulius.
O dieve, įspūdinga, aš galiu žiūrėti 1080p flash vaizdo įrašus su pasyviu Nvidia 8400, turiu galvoje, blogai blogai, PUIKAI, visi centriniai procesoriai veikia, nuostabus uffff, koks patobulinimas, daug geriau, turiu Ubuntu 10.04 😀 Puiku , vaizdo įrašai man tinka hahaha 😀
Koks rc.local? Yra keletas, kuris iš jų? Sveikinimai.
Aš tiesiog parašiau komandas, nurodytas 4 punkte. Jums nereikia to kopijuoti į failą, o vykdyti tas komandas.
Cheers! Paulius.
Tai prastai paaiškinta.
Ką reikia padaryti, tai redaguoti rc.local failą naudojant:
sudo gedit /etc/rc.local
turite įklijuoti viduje (prieš išeinant 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
Tai problema. Tie žingsniai menkai paaiškinti.
Tu teisus! Jame aiškiai parašyta: „Redaguoti rc.local failą“. Trūko komandos tai padaryti (kurios kai kurie gali nežinoti). Tuoj pridėsiu.
Ačiū už pranešimą! Sveikinimai! Pablo.
Kokia būtų procedūra PCLinuxOs?
Tiesa ta, kad nežinau…
Jei sužinosite, nepamirškite pasidalinti duomenimis su likusiais!
Labai ačiū!
Cheers! Paulius.
Ar man taip atrodo, ar nepateikėte jokios nuorodos, iš kur tai gavote? Ar galėtumėte man pasakyti šaltinį?
Ačiū
Vieno šaltinio nėra. Ieškojau, kaip tai padaryti, iš įvairių šaltinių ir iš savo asmeninės patirties. Apskritai galiu pasakyti, kad šaltiniai yra milijonai tinklaraščių, kuriuose buvo atkurtos šios naujienos. Ieškokite "200 eilučių linux kernel patch" ir pamatysite apie ką aš kalbu. Tiksliai nepamenu, bet Ubuntu dalis galėjo būti gauta iš WebUpd8; ne taip su Fedora.
Neseniai esu Ubuntu 64 bitų vartotojas ir, kai pamačiau šį patarimą, pradėjau tyrinėti, o dabartinis branduolys, kurį turiu, yra 2.6.32-27 pagal įrašą, ši pataisa gali būti taikoma tik branduoliams, kurie yra aukštesni nei arba lygus 2.6.36. Mano klausimas yra toks, ar šis pakeitimas veikia tik 32 bitų platinimui, ar mano dabartinėje distribucijoje branduolį galima atnaujinti į 2.6.36?
Ačiū už visą informaciją svetainėje, puikią medžiagą.
Šis pakeitimas vienodai veikia 32 ir 64 bitams.
Cheers! Paulius.
į klausimą, ir ar tai nesukels netvarkos su vėlesniu atnaujinimu?
Jei nepavyktų gerai, kas būtų blogiausia, kas gali nutikti?
(matote, kad tik pereinant nuo Ubuntu 10.04 į 10.10 viskas sugenda)
Pirmas dalykas, kurį reikėtų paaiškinti (siekiant išvengti neatsakingo metodo naudojimo), yra tai, kad jam reikalingas Linux branduolio (cgroups) užduočių grupių palaikymas, tai yra, šį metodą gali taikyti tik vartotojai, kurių branduolys didesnis nei 2.6.36. tobulinimas.