TIPS: parche de 4 líneas que puede incrementar enormemente el rendimiento de tu sistema !!

Extraido de: UsemosLInux

Para hacer la historia corta, hace unos días uno de los desarrolladores del kernel subió un patch (de 200 líneas de código) que permitía mejorar considerablemente (casi una 10 veces) el rendimiento del sistema, especialmente al lidiar con el multitasking durante la ejecución de una tarea pesada (como compilar el kernel). Linus felicitó a este desarrollador por su gran aporte. No obstante, un desarrollador de Red Hat, Lennar Poettering, no estaba de acuerdo en implementar esa mejora directo desde el kernel; para él era mejor hacer los cambios en el espacio de usuario (~/.bashrc). Linus se enojó e increpó a este desarrollador, diciéndole que los resultados hablaban por sí mismos. Lennar, en vez de responder con palabras duras, se sentó e ideó una alternativa (que no precisa de parchear el kernel) y que ocupa apenas 4 líneas. En definitiva, le cerraron el pico a Linus…

Cómo aplicar el parche en Ubuntu
En Ubuntu la cosa es un poquito más complicada…

1.- Editá el archivo rc.local con este comando:

sudo gedit /etc/rc.local

y pegá antes de donde dice “exit 0”, lo siguiente:

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.- Guardá el archivo y otorgale permisos de ejecución:

sudo chmod +x /etc/rc.local

3.- Editá el archivo ~/.bashrc:

gedit ~/.bashrc

4.- Pegá el siguiente código al final del archivo:

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

5.- Modificá el archivo cgroup_clean:

sudo gedit /usr/local/sbin/cgroup_clean

6.- Pegá el siguiente código al final del archivo:

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

7.- Guardá el archivo y otorgale permisos de ejecución:

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

8.- Reiniciá el sistema.


Nota: si ves la carpeta /dev/cgroup/ vas a notar una mejora considerable en la gestión de la multitarea


Contanos tu experiencia !!!

9 Responses to TIPS: parche de 4 líneas que puede incrementar enormemente el rendimiento de tu sistema !!

  1. Fabricio dice:

    Lo estoy probando en mi netbook y abro por ejemplo OO, Chrome, Eclipse, Rhythmbox y Nautilus y la verdad que va lo más bien… nose si será un “efecto placebo” pero en verdad parece ir más rápido

    Lo único que al abrir una terminal me aparece el mensaje:
    “bash: echo: error de escritura: Argumento inválido”

    pero me funciona todo OK

    saludos, gracias por el tip

  2. victor dice:

    …para que nucleos es valido el parche?. Reconozco que no lo googlee mucho al tema, pero al estar en espacio de usuario deberia funcionar para todos los de la rama 2.6 por lo menos…

  3. Fernando Witzke dice:

    En mi caso la mejora se presento apenas inicio el Sistema.

    Tengo un Widget de Screenlets que me muestra el clima en el escritorio. Antes éste tardaba unos 8 segundos en mostrar la información, siempre!!. Primero se mostraba en una caja negra vacía con un cartel que decía algo que no encontraba información y tras 8 segundos aparecía el clima.
    Tras seguir los pasos y reiniciar el sistema me percato que el Widget ya aparece cargado ni bien aparece el Escritorio de Trabajo. Por el resto no me tome el trabajo de testear.

    Eso si, también al abrir una terminal aparece “bash: echo: error de escritura: Argumento inválido”

  4. German dice:

    Lo aplique y mejoro mucho, como es una maquina algo viejita. Pero me sale el mismo mensaje al abrir una consola “bash: echo: error de escritura: Argumento inválido”

  5. hola. tenes que modificar la linea en .bashrc reemplazar el echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release por echo 1 > /dev/cgroup/cpu/user/$$/notify_on_release y listo !!! (ya edite el articulo)

  6. Fabricio dice:

    Marco Antonio de Hoyos :
    hola. tenes que modificar la linea en .bashrc reemplazar el echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release por echo 1 > /dev/cgroup/cpu/user/$$/notify_on_release y listo !!! (ya edite el articulo)

    tenés razón, gracias!

  7. Balta dice:

    En mi distro ya venia todo eso y en esta parte venia esto… debo quitarle el if?? gracias

    #!/bin/sh
    if [ “$*” != “/user” ]; then
    rmdir /dev/cgroup/cpu/$*
    fi

  8. ova_arg dice:

    Fabricio :

    Marco Antonio de Hoyos :
    hola. tenes que modificar la linea en .bashrc reemplazar el echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release por echo 1 > /dev/cgroup/cpu/user/$$/notify_on_release y listo !!! (ya edite el articulo)

    tenés razón, gracias!

    buenísimo, muchas gracias…funcionó!

  9. Sebastian dice:

    Hola a todos segui los pasos y al terminar me sale el siguiente error:
    mkdir: no se puede crear el directorio «/dev/cgroup/cpu/user/2073»: No existe el archivo o el directorio
    bash: /dev/cgroup/cpu/user/2073/tasks: No existe el archivo o el directorio
    bash: /dev/cgroup/cpu/user/2073/notify_on_release: No existe el archivo o el directorio
    mkdir: no se puede crear el directorio «/dev/cgroup/cpu/user/2073»: No existe el archivo o el directorio
    bash: /dev/cgroup/cpu/user/2073/tasks: No existe el archivo o el directorio
    bash: /dev/cgroup/cpu/user/2073/notify_on_release: No existe el archivo o el directorio
    sebastian@sebastian:~$

    Luego hice lo que recomiendan mas arriba:

    Marco Antonio de Hoyos :
    hola. tenes que modificar la linea en .bashrc reemplazar el echo “1” > /dev/cgroup/cpu/user/$$/notify_on_release por echo 1 > /dev/cgroup/cpu/user/$$/notify_on_release y listo !!! (ya edite el articulo)

    Pero no paso nada me sigue saliendo el mismo error, si alguien me puede ayudar. Gracias y saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *