Om een lang verhaal kort te maken, een paar dagen geleden een van de kernelontwikkelaars heeft een patch geüpload (200 regels code) die het mogelijk maakten om de prestaties van het systeem aanzienlijk te verbeteren (bijna 10 keer), vooral bij het omgaan met multitasking tijdens het uitvoeren van een zware taak (zoals het compileren van de kernel). Linus feliciteerde deze ontwikkelaar met zijn geweldige bijdrage. Een Red Hat-ontwikkelaar, Lennar Poettering was het er niet mee eens om deze verbetering rechtstreeks vanuit de kernel te implementeren; het was beter voor hem om de wijzigingen in de gebruikersruimte aan te brengen (~ / .bashrc). Linus werd boos en hekelde deze ontwikkelaar en vertelde hem dat de resultaten voor zich spraken. Lennar, in plaats van met harde woorden te antwoorden, ging zitten en bedacht een alternatief (dat de kernel niet hoeft te patchen) en dat slechts 4 regels beslaat. Uiteindelijk zwijgen ze Linus ... |
Opmerking: deze methode vereist ondersteuning voor groepen taken in de Linux Kernel (cgroups), dat wil zeggen dat alleen gebruikers met een Kernel hoger dan 2.6.36 deze kunnen toepassen.
Hoe de patch in Fedora toe te passen
1.- Bewerk het ~ / .bashrc-bestand.
gedit ~ / .bashrc
2.- Plak de volgende code aan het einde van het bestand:
als ["$ PS1"]; vervolgens
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / taken
fi
3.- Voer de volgende opdrachten uit:
mount -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / user
Hoe de patch in Ubuntu toe te passen
In Ubuntu zijn de dingen een beetje ingewikkelder ...
1.- Bewerk het bestand rc.lokaal met dit commando:
sudo gedit /etc/rc.local
en plak voor waar het "exit 0" zegt, het volgende:
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.- Sla het bestand op en geef het uitvoeringsrechten:
sudo chmod + x /etc/rc.local
3.- Bewerk het bestand ~ / .bashrc:
gedit ~ / .bashrc
4.- Plak de volgende code aan het einde van het bestand:
als ["$ PS1"];
dan mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ / taken
echo "1"> / dev / cgroup / cpu / user / $$ / notification_on_release
fi
5.- Wijzig het bestand cgroup_clean:
sudo gedit / usr / local / sbin / cgroup_clean
6.- Plak de volgende code aan het einde van het bestand:
#! / Bin / sh
if ["$ *"! = "/ gebruiker"]; vervolgens
rmdir / dev / cgroup / cpu / $ *
fi
7.- Sla het bestand op en geef het uitvoeringsrechten:
sudo chmod + x / usr / local / sbin / cgroup_clean
8.- Start het systeem opnieuw op.
Opmerking: als u de map / dev / cgroup / ziet, zult u een aanzienlijke verbetering in multitaskingbeheer opmerken.
Ik heb de instructies voor Arch gevonden, ze zijn hier: http://pastebin.com/raw.php?i=sHRYRuAN
Van mijn kant heb ik de patch toegepast, veel verbetering merk ik in het algemeen niet, maar als je een grote verandering opmerkt bij het scrollen van de webpagina's, zijn ze voor de eerste keer echt vloeiend !!! =)
Super goed! Heel erg bedankt voor het delen!
Heb ik je verteld dat we op zoek zijn naar mensen die Arch gebruiken om te bloggen? Als u geïnteresseerd bent, schrijf dan naar laten we gebruikenlinux@gmail.com
Een dikke knuffel! Paul.
Bedankt voor de uitnodiging, dan gaan we verder per mail dan 😉
Toevallig zullen er geen instructies zijn voor Archlinux, toch? 🙂
Ik heb ze niet gevonden. Maar iets zegt me dat het zeker meer op Fedora lijkt. Aan de andere kant moet in gedachten worden gehouden dat, aangezien iedereen Arch monteert zoals ze willen, dit misschien de te volgen procedure beïnvloedt ...
Hier ontdekte ik hoe ik ze in Archlinux kon toepassen, het lijkt veel op fedora: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / taken: het bestand of de map bestaat niet
Ik volgde deze instructies en het blijft me deze fout vertellen bij het openen van de AMD64 x-terminal als deze iets te doen heeft
Ik heb het al gevonden, Pablo corrigeer het http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Wat te doen in ubuntu - in plaats van wat u invoert - is:
sudo gedit / usr / local / sbin / cgroup_clean
en zet dit:
#! / Bin / sh
if ["$ *"! = "/ gebruiker"]; vervolgens
rmdir / dev / cgroup / cpu / $ *
fi
Klaar! Gecorrigeerd! Dank je!
Het is waar! Bedankt dat je mij eraan herinnert!
Ik heb zojuist die verduidelijking aan het begin van het bericht toegevoegd.
Een knuffel! Paul.
Specifiek, welke voordelen krijg ik als gebruiker en welke prestatieverbeteringen zullen in mijn systeem te zien zijn.
Alles gaat veel sneller. De verschillen worden echter pas echt "gezien" als je een zware taak doet en tegelijkertijd andere taken wilt doen. U voert bijvoorbeeld de installatie van verschillende programma's uit of u compileert de kernel of bewerkt een zware video en u wilt tegelijkertijd op internet surfen of een film kijken, enz.
Laat me weten als je erachter komt hoe je de patch in Arch moet implementeren. Ik zou proberen degene te draaien die werkt in Fedora.
Knuffel! Paul.
Ik denk dat dat afhangt van hoe u uw computer gebruikt. Als je amper internet en een lichte teksteditor gebruikt ... voel je het verschil niet. Aan de andere kant, als je net als ik bent en zware taken uitvoert (zoals het converteren van video's, het compileren van de kernel, enz.) Terwijl je op internet surft of films kijkt, kun je het verschil zien.
Na alle stappen krijg ik bij het openen van de terminal altijd het volgende:
mkdir: kan map "/ dev / cgroup / cpu / user / 1844" niet maken: bestand of map bestaat niet
bash: / dev / cgroup / cpu / user / 1844 / taken: het bestand of de map bestaat niet
bash: / dev / cgroup / cpu / user / 1844 / notification_on_release: bestand of map bestaat niet
domingopv @ pc1: ~ $
Alles werkt prima, zelfs de terminal, heb je iets verkeerd gedaan?
Hmm ... ik weet echt niet wat het kan zijn. Ik krijg echter de indruk dat het zeer waarschijnlijk is dat je sommige stappen niet goed hebt gedaan, vooral vanaf 5. Probeer ze te herhalen of zorg ervoor dat u ze goed hebt. Dat is alles wat ik kan bedenken voor nu.
Een dikke knuffel! Paul.
Installeer maverick opnieuw en installeer de patch opnieuw, en nu krijg ik het volgende.
mkdir: kan map "/ dev / cgroup / cpu / user / 1678" niet maken: bestand of map bestaat niet
bash: / dev / cgroup / cpu / user / 1678 / taken: het bestand of de map bestaat niet
bash: / dev / cgroup / cpu / user / 1678 / notification_on_release: bestand of map bestaat niet
domingopv @ pc1: ~ $
Uyy .. Ik weet echt niet wat het kan zijn. Het werkte perfect voor mij.
Iets zegt me dat het opschonen van cgroup niet goed is gedaan. Daarom stond ik erop dat je het vanaf stap 5 zou zien.
Proost! Paul.
Moeder van mij, indrukwekkend, ik kan 1080p flash-video's zien op een passieve nvidia 8400, ik bedoel, slecht slecht, PERFECT, de cpu's werken allemaal, geweldig uffff, dat verbetert, het is veel beter, ik heb Ubuntu 10.04 😀 zo goed, de video's zijn goed voor mij hahaha 😀
Welke rc.local? Er zijn er meerdere, welke is het? Vriendelijke groeten.
Ik heb zojuist de commando's uit punt 4 geschreven. Je hoeft dat niet naar een bestand te kopiëren, maar voer die commando's uit.
Proost! Paul.
Het wordt slecht uitgelegd.
Wat u moet doen is het bestand rc.local bewerken met:
sudo gedit /etc/rc.local
Je moet binnen plakken (voor exit 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
Dat is het probleem. Die stappen worden slecht uitgelegd.
Je hebt gelijk! Het zegt duidelijk: "bewerk het bestand rc.local." Wat ontbrak om toe te voegen, is de opdracht om zoiets te doen (waarvan sommigen misschien niet weten). Ik voeg het nu toe.
Bedankt voor het opmerken! Proost! Paul.
Wat zou de procedure zijn in PCLinuxOs?
De waarheid is dat ik het niet weet ...
Als u erachter komt, vergeet dan niet om de gegevens met de rest te delen!
Hartelijk dank!
Proost! Paul.
Het lijkt mij of je hebt geen enkele referentie geplaatst waar je het vandaan hebt? Kunt u mij de bron vertellen?
bedankt
Er is geen enkele bron. Ik was op zoek naar hoe ik het moest doen vanuit verschillende bronnen en vanuit mijn eigen persoonlijke ervaring. In algemene termen kan ik je zeggen dat de bronnen de miljoenen blogs zijn die dat nieuws hebben gereproduceerd. Zoek naar "patch 200 linux kernel-regels" en je zult zien waar ik het over heb. Ik weet het niet precies meer, maar het Ubuntu-gedeelte is mogelijk afkomstig van WebUpd8; niet zo voor Fedora.
Ik ben nog niet zo lang geleden een gebruiker van ubuntu 64 bit en als ik deze tip zie begin ik te onderzoeken en de huidige kernel die ik heb is 2.6.32-27 volgens de post, deze patch kan alleen worden toegepast op kernels die hoger of gelijk zijn naar 2.6.36 Mijn vraag is of deze wijziging alleen werkt voor 32 bit distributies of in mijn huidige distro, kan de kernel worden bijgewerkt naar 2.6.36?
Bedankt voor alle informatie op internet, uitstekend materiaal.
Deze wijziging werkt zowel voor 32 als 64 bit.
Proost! Paul.
op een vraag, en dit zou niet rotzooien met een latere update?
Als het niet goed zou gaan, wat is dan het ergste dat kan gebeuren?
(Je ziet dat als je van een Ubuntu 10.04 naar een 10.10 gaat, alles crasht)
Het eerste dat moet worden verduidelijkt (om het onverantwoordelijke gebruik van de methode te voorkomen) is dat het ondersteuning vereist voor groepen taken in de Linux Kernel (cgroups), dat wil zeggen dat alleen gebruikers met een Kernel hoger dan 2.6.36 deze methode van verbetering.