Un nou pegat de 4 línies que pot incrementar enormement el rendiment del teu sistema

Per fer la història curta, fa uns dies un dels desenvolupadors del nucli va pujar un patch (de 200 línies de codi) que permetia millorar considerablement (gairebé una 10 vegades) el rendiment del sistema, especialment en bregar amb el multitasking durant l'execució d'una tasca pesada (com compilar el kernel). Linus va felicitar aquest desenvolupador per la seva gran aportació. No obstant això, un desenvolupador de Red Hat, Lennar Poettering no estava d'acord a implementar aquesta millora directe des del nucli; per a ell era millor fer els canvis a l'espai d'usuari (~/.bashrc). Linus es va enutjar i va increpar aquest desenvolupador, dient-li que els resultats parlaven per si mateixos. Lennar, en comptes de respondre amb paraules dures, es va asseure i idear una alternativa (que no necessita pegat el kernel) i que ocupa gairebé 4 línies. En definitiva, van tancar el bec a Linus… 

Nota: aquest mètode requereix suport a grups de tasques al Kernel Linux (cgroups), és a dir, només els usuaris amb Kernel superior a 2.6.36 podrien aplicar-lo.

Com aplicar el pegat a Fedora

1.- Edita el fitxer ~/.bashrc.

gedit ~ / .bashrc

2.- Enganxeu el codi següent al final del fitxer:

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

3.- Executeu les ordres següents:

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

Com aplicar el pegat a Ubuntu

A Ubuntu la cosa és una mica més complicada…

1.- Edita l'arxiu rc.local amb aquesta comanda:

sudo gedit /etc/rc.local

i enganxeu abans d'on diu «exit 0», el següent:

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
fet "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

2.- Deseu el fitxer i atorgueu permisos d'execució:

sudo chmod +x /etc/rc.local

3.- Edita l'arxiu ~ / .bashrc:

gedit ~ / .bashrc

4.- Enganxeu el codi següent al final del fitxer:

if [ "$PS1" ] ;
then mkdir -m 0700 /dev/cgroup/cpu/user/$$
fet $$ > /dev/cgroup/cpu/user/$$/tasks
fet "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

5.- Modifiqueu el fitxer cgroup_clean:

sudo gedit /usr/local/sbin/cgroup_clean

6.- Enganxeu el codi següent al final del fitxer:

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

7.- Deseu el fitxer i atorgueu permisos d'execució:

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

8.- Reinicieu el sistema.

Nota: si veus la carpeta /dev/cgroup/ notaràs una millora considerable en la gestió de la multitasca.

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Thalskarth va dir

    Vaig trobar les instrucions per a Arch, són aquí: http://pastebin.com/raw.php?i=sHRYRuAN

    Per part meva, vaig aplicar el pegat, molta millora no noto en general, però si es nota un gran canvi en fer scroll a les pagines web, realment per primera vegada van fluides!!! =)

  2.   Fem servir Linux va dir

    Boníssim! Moltes gràcies x compartir!
    Et vaig dir que estem buscant gent que utilitzi Arch per escriure al bloc? Si us interessa, escriviu-nos a usemoslinux@gmail.com
    Un gran abraçada! Pau.

  3.   Thalskarth va dir

    Gràcies per la invitació, després seguim per mail llavors 😉

  4.   Thalskarth va dir

    De casualitat no hi haurà instruccions per a Archlinux, no? 🙂

  5.   Fem servir Linux va dir

    No les vaig trobar. Però alguna cosa em diu que segur és més semblant a Fedora. D'altra banda, caldria tenir en compte que com cadascú va armant Arch com vol, potser això influeixi en el procediment a seguir…

  6.   Thalskarth va dir

    Aquí vaig trobar com aplicar-les a Archlinux, és força similar al de fedora: http://pastebin.com/raw.php?i=sHRYRuAN

  7.   Miquel Mayol i Tur va dir

    bash: /dev/cgroup/cpu/user/$/tasks: No existeix el fitxer o directori

    Vaig seguir aquestes instruccions i em segueix dient aquest error en obrir el terminal AMD64 x si hi té alguna cosa a veure

  8.   Miquel Mayol i Tur va dir

    Ja ho he trobat, si us plau pau corregiu-lo http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html

    El que cal fer a ubuntu – en comptes del que poses – és:

    sudo gedit /usr/local/sbin/cgroup_clean

    i posar això:

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

  9.   Fem servir Linux va dir

    A punt! Corregit! Gràcies!

  10.   Fem servir Linux va dir

    És cert! Gràcies x recordeu-m'ho!
    Acabo d'afegir aquest aclariment al començament del post.
    Una abraçada! Pau.

  11.   Dasinex va dir

    Concretament, quins beneficis obtindré com a usuari, i quines millores en rendiment es veuran en el meu sistema.

  12.   Fem servir Linux va dir

    Tot va molt més de pressa. No obstant això, les diferències es «veuen» realment quan estàs realitzant una tasca pesada i voleu fer-ne al mateix temps altres. Per exemple, estàs corrent la instal·lació de diversos programes o estàs compilant el kernel o editant un vídeo pesat i alhora voleu navegar per internet o veure una pel·li, etc.

  13.   Fem servir Linux va dir

    Aviseu-me si descobriu com implementar el pegat a Arch. Jo intentaria corrent el que funciona a Fedora.
    Abraçada! Pau.

  14.   Fem servir Linux va dir

    Suposo que això depèn de l'ús que us donis al teu compu. Si amb prou feines fas servir internet i algun editor de text lleuger… no «sentiràs» la diferència. En canvi, si ets com jo i fas tasques pesades (com convertir vídeos, compilar el nucli, etc.) mentre navegas a internet o mires pel·lis, sí que es nota la diferència.

  15.   Diumengepv va dir

    Realitzats tots els passos ,en obrir el terminal em surt sempre el següent:
    mkdir: no es pot crear el directori "/dev/cgroup/cpu/user/1844": No existeix el fitxer o directori
    bash: /dev/cgroup/cpu/user/1844/tasks: No existeix el fitxer o directori
    bash: /dev/cgroup/cpu/user/1844/notify_on_release: No existeix el fitxer o directori
    domingopv @ PC1: ~ $
    Tot funciona bé fins i tot el terminal, realitzeu alguna cosa malament?

  16.   Fem servir Linux va dir

    Mmmm..la veritat no sé què pot ser. No obstant, em fa la impressió que és molt probable que no hagis fet bé algun dels passos, del 5 en endavant especialment. Prova repetint-los o assegurant-te que els hagis fet bé. Això és tot el que se m'ocorre per ara.
    Un gran abraçada! Pau.

  17.   Diumengepv va dir

    Reinstal·leu maverick i reinstal·leu el pegat i ara em surt el següent.
    mkdir: no es pot crear el directori "/dev/cgroup/cpu/user/1678": No existeix el fitxer o directori
    bash: /dev/cgroup/cpu/user/1678/tasks: No existeix el fitxer o directori
    bash: /dev/cgroup/cpu/user/1678/notify_on_release: No existeix el fitxer o directori
    domingopv @ PC1: ~ $

  18.   Fem servir Linux va dir

    Uyy..la veritat que no sé què pot ser. A mi em va funcionar perfecte.
    Alguna cosa em diu que la neteja de cgroup no es fa bé. Per això t'he insistit que veiessis del pas 5 en endavant.
    Salutacions! Pau.

  19.   Nolodig va dir

    Mare meva, impressionant, puc veure vídeos flash 1080p en una nvidia 8400 passiva, osea, mala dolenta, PERFECTAMENT, les cpus totes funcionant, meravellós uffff, que millora, va molt millor, tinc Ubuntu 10.04 😀 que bé, els videos 😀

  20.   Delano va dir

    Què rc.local? Hi ha diversos, quin és? Salutacions.

  21.   Fem servir Linux va dir

    Simplement he escrit les ordres que es llisten al punt 4. No has de copiar això dins d'un fitxer sinó executar aquestes ordres.
    Salutacions! Pau.

  22.   GNU / Linux Tips va dir

    Està mal explicat.

    El que cal fer és editar el fitxer rc.local amb:

    sudo gedit /etc/rc.local

    cal enganxar dins (abans de l'èxit 0):

    mkdir -p /dev/cgroup/cpu
    mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
    mkdir -m 0777 /dev/cgroup/cpu/user
    fet «/usr/local/sbin/cgroup_clean» > /dev/cgroup/cpu/release_agent

    Aquest és el problema. Aquests passos estan mal explicats.

  23.   Fem servir Linux va dir

    Teniu raó! Diu clarament, «editar el fitxer rc.local». El que va faltar afegir és l'ordre per fer aquesta cosa (que potser alguns no ho coneguin). Ja mateix ho afegeixo.
    Gràcies x l'avís! Salutacions! Pau.

  24.   Aespinoza va dir

    Quin seria el procediment a PCLinuxOs?

  25.   Fem servir Linux va dir

    La veritat que no sé…
    Si esbrinaràs, no t'oblidis de compartir la data amb la resta!
    Moltes gràcies!
    Salutacions! Pau.

  26.   gonho va dir

    M'ho sembla a mi o no has posat cap referència d'on ho has tret? Em podries dir la font?

    Gràcias

  27.   Fem servir Linux va dir

    No hi ha una única font. Vaig anar buscant com fer-ho de diferents fonts i de la meva pròpia experiència personal. En termes generals, et puc dir que les fonts són els milions de blocs que van reproduir aquesta notícia. Busca «pegat 200 línies kernel linux» i veuràs de què parlo. No ho recordo exactament, però és possible que la part d'Ubuntu l'hagi obtinguda de WebUpd8; no així la de Fedora.

  28.   luckys0921 va dir

    Jo sóc usuari de no fa gaire, de ubuntu 64 bit i en veure aquest tip em poso a investigar i el kernel actual que tinc és 2.6.32-27 segons el post aquest només es pot aplicar aquest pegat a kernels que siguin superior o igual al 2.6.36 La meva pregunta és si aquest canvi només serveix per a distros de 32 bits o al meu actual distro es pot actualitzar el kernel a 2.6.36 ¿?

    Gràcies per tota la info de la web, excel·lent material.

  29.   Fem servir Linux va dir

    Aquest canvi serveix per a 32 i 64 bits, per igual.
    Salutacions! Pau.

  30.   mr Tuxito va dir

    a una pregunta, i això no faria embolics amb alguna actualització posterior?
    en cas que no anés bé, què seria el pitjor que podria passar?
    (ja veus que després el sol anar d'un ubuntu 10.04/10.10 a un XNUMX/XNUMX crashea tot)

  31.   jesuslara va dir

    El primer que caldria aclarir (per evitar l'ús irresponsable del mètode) és que aquest requereix de suport a grups de tasques al Kernel Linux (cgroups), és a dir, només usuaris amb Kernel superior a 2.6.36 podrien aplicar aquest mètode de millora.