El parche “milagro” de Linux de 200 lineas implementado en 4 lineas de Bash

Seguro que de estos días os suena (pues ya muchos sitios han hablado de ello) de una pequeña modificación al kernel que incrementaria el rendimiento. Bueno exactamente el rendimiento no, si no una mejora mediante la agrupación de procesos. Lee el primer comentario de este post para una explicación más detallada. Pues bien ese mismo efecto puede conseguirse simplemente con 4 lineas de scripting que un desarrollador de Red hat: Lennart Poettering, le envió a  Linus Torvalds. Ha habido una acalorada discusión entre ellos, pero a mi esos minucias sin “demasiada importancia” ya no me interesan.

En principio para usar esta modificación bastaria con añadir:

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

Al final de nuestro fichero .bashrc y luego ejecutar como root:

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

Esto en Ubuntu sin embargo no funciona (deberiamos cambiar /sys/fs por /dev), Asi que haremos lo siguiente:

Edita el fichero /etc/rc.local y añadimos (gedit /etc/rc.local):

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

Al final de nuestro fichero .bashrc pondremos:

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

Y finalmente damos permisos de ejecucion:

sudo chmod +x /etc/rc.local

Tambien ejecutamos:

sudo gedit /usr/local/sbin/cgroup_clean

Le añadimos esto:

#!/bin/sh
rmdir /dev/cgroup/cpu/$*

guardamos, y convertimos este fichero a ejecutable:

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

y ahora ya reiniciamos o ejecutamos:

sudo /etc/rc.local

Respecto a la supuesta modificación, Los usuarios de desarrollo de Natty están muy contentos, pudieron insertar los cambios en la (proxima) versión 2.6.38 y ya llevan algun tiempo usandolo en los kernels de server.

Actualización | Gracias por los comentarios, la solución estaba incompleta y se puede encontrar via web Upd8. Lamento las molestias, me quede sin internet y no pude probarlo.

Fuentes | ElavDeveloper, Meneame

36 Responses to “El parche “milagro” de Linux de 200 lineas implementado en 4 lineas de Bash”


  1. 1 Damnshock noviembre 20, 2010 en 11:07 am

    Este parche *NO* incremente el rendimiento. De ninguna forma.

    Lo que hace el parche es implementar el agrupamiento de procesos directamente dentro del kernel y por TTY (terminal). Todo esto ya existe desde hace tiempo en Linux, sólo que había que hacerlo manualmente como el técnico de Red Hat ha hecho (esas cuatro líneas en el .bashrc).

    Una explicación práctica:

    Si ahora mismo estás mirando una película y tienes en una terminal (o asociado a ella) un número importante de procesos, digamos 29, la cantidad de cpu asignada al proceso de la película ahora mismo es de 1/30 por eso a veces parece que haya problemas de “responsiveness” en linux.

    De lo que se encarga este parche (o la solución que se menciona en este blog) es de agrupar los procesos de la terminal de modo que ahora el vídeo recibe 1/2 de la CPU y el otro 1/2 va al grupo de procesos asociado a la terminal y por eso *parece* que haya más rendimiento.

    Este parche no sirve *de nada* si no tienes procesos asociado a TTYs que consuman recursos de CPU. Tampoco sirve si el problema no es de CPU sino de I/O (entrada/salida).

    Vamos, que para el usuario estándar de un ordenador no significa nada 😉

    Saludos

    PS: con “ps -e” podemos ver qué procesos tenemos asociados a TTYs y cuáles no (? significa que no está asociado a ninguna TTY)

  2. 2 afsoons noviembre 20, 2010 en 11:29 am

    A probarlo que tengo un ordenador algo viejo y a ver la diferencia jeje ya os contare

  3. 5 Jose Manuel noviembre 20, 2010 en 12:41 pm

    Una pregunta si no tienes el directorio local que tengo k hacer me eh kedado aki

    josema@josema-desktop:/etc$ cd /local
    bash: cd: /local: No existe el archivo o directorio

  4. 6 ChineseGeek noviembre 20, 2010 en 1:46 pm

    Hola, hay un error en el post, no es “cd /etc/local” sino “gedit /etc/rc.local”

  5. 7 Francisco T. noviembre 20, 2010 en 1:52 pm

    Hay un error. Es el archivo /etc/rc.local y no un directorio /etc/local

  6. 8 Pablo noviembre 20, 2010 en 2:13 pm

    gracias por la informacion… he quedado estancado en la misma parte que el amigo JoseManuel si alguien nos puede responder seria grandioso

    gracias de antemano

  7. 9 albertoi noviembre 20, 2010 en 2:18 pm

    He puesto el parche este y puedo decir que realmente es milagroso. He puesto dos películas en 1080p y sin relantizaciones 🙂 ya probaré despues con más

  8. 10 Pablo noviembre 20, 2010 en 2:27 pm

    Desde /etc/local ejecutamos:

    mkdir -p /dev/cgroup/cpu
    mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
    mkdir -m 0777 /dev/cgroup/cpu/user

    en esta parte estoy estancado… tengo que poner esas partes en el archivo rc.local o en una carpeta llamada local hacer esas lineas??

  9. 11 Francisco noviembre 20, 2010 en 2:31 pm

    No llego a entender muy bien como se aplica esto en Ubuntu 10.04lts, ufff tengo la sensación que no lo estoy haciendo bien 😦 y que me lo cargo o algo … ayuda porfa. 😦

  10. 12 maria noviembre 20, 2010 en 2:50 pm

    Francisco, este post tiene muchos errores. Pásate por el link que ha puesto afsoons.

  11. 13 Francisco noviembre 20, 2010 en 3:29 pm

    Muchas gracias voy a echarle un vistazo. 😀

  12. 14 Luis noviembre 20, 2010 en 3:47 pm

    no le entiendo al tutorial, no se donde se empieza y ni haciendo q :/

  13. 15 Luis noviembre 20, 2010 en 3:47 pm

    no le entiendo al tutorial, no se donde se empieza y ni haciendo q :/

  14. 16 julian noviembre 20, 2010 en 4:20 pm

    hola, alguno lo podria explicar paso a paso como hacerlo, por que no esta muy claro.
    gracias

  15. 17 Antonio Moreno noviembre 20, 2010 en 4:52 pm

    a mi también me funcionó lo del link externo, gracias por el dato y por el post!

  16. 19 Llefri noviembre 20, 2010 en 5:31 pm

    No sabes si este parche será lanzado de forma oficial por parte del equipo de desarollo de Ubuntu?
    Gracias.

  17. 21 nenelinux noviembre 20, 2010 en 5:40 pm

    yo no he comensado y ya me dio un error

    mkdir: no se puede crear el directorio «/sys/fs/cgroup/cpu/user/5596»: No existe el archivo o directorio
    bash: /sys/fs/cgroup/cpu/user/5596/tasks: No existe el archivo o directorio

    alguna sugerencia?

  18. 23 superpiwi noviembre 20, 2010 en 6:00 pm

    Lo ideal seria crear un script instalador. empaquetarlo como .deb y asi ya todos lo podriamos instalar sin problemas.
    pero 😦 yo no tengo tiempo ahora. a ver si alguien se anima.

  19. 24 zd noviembre 20, 2010 en 6:09 pm

    ya se ha creao deb en http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html

    al final del articulo

    pd: a mi si me ha incrementado el rendimiento, tb viendo videos en flash a 1080 en pantalla completa en youtube, antes cuando keria pasar de segundos se “petaba”, ahora va mas rapido.

    • 25 sa noviembre 20, 2010 en 11:54 pm

      segun hay que bajar los paquetes deb de kernel, pero no seria mas practico crear un script que genere esas instrucciones? alguien con conocimiento de programacion para los comunes mortales?
      se agradeceria.

  20. 26 angelbotto noviembre 20, 2010 en 7:02 pm

    esto es un EPIC FAIL xD


  1. 1 Tweets that mention El parche “milagro” de Linux de 200 lineas implementado en 4 lineas de Bash « Ubuntu Life -- Topsy.com Trackback en noviembre 20, 2010 en 10:30 am
  2. 2 El parche “milagro” de Linux de 200 lineas implementado en 4 lineas de Bash | Ayuda Linux Trackback en noviembre 20, 2010 en 8:21 pm
  3. 3 Hacer más eficiente tu Kernel Linux — Nehuen Escalada Trackback en noviembre 20, 2010 en 9:37 pm
  4. 4 El kernel, parche de 200 lineas y escandalo….. | Tux Files Trackback en noviembre 21, 2010 en 2:27 am
  5. 5 El parche “milagro” de Linux (ahora con script de instalación) « Ubuntu Life Trackback en noviembre 22, 2010 en 7:05 pm
  6. 6 El parche “milagro” de Linux (ahora con script de instalación) | Ayuda Linux Trackback en noviembre 23, 2010 en 1:21 am
  7. 7 El parche “milagro” de Linux de 200 lineas (ahora con script de instalación) | El Blog de Rigo Trackback en noviembre 23, 2010 en 10:08 am
  8. 8 Linux recebe “patch milaculoso” e Linus Torvalds é OWNADO! | Ciência da Computação UFSJ Trackback en noviembre 26, 2010 en 4:44 am
  9. 9 Mejora del rendimiento interactivo agrupando tareas por terminal | karpoke Trackback en diciembre 16, 2010 en 12:03 am
  10. 10 Linus, el script mágico y un zas en toda la boca - Ubuntizando.com Trackback en enero 28, 2015 en 1:28 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s







¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
noviembre 2010
L M X J V S D
« Oct   Dic »
1234567
891011121314
15161718192021
22232425262728
2930  

Blog Stats

  • 30,007,562 hits

A %d blogueros les gusta esto: