Hace poco hablábamos del «milagroso» parche que un desarrollador había creado para crear grupos de tareas TTY de forma que el rendimiento del sistema se viera muy mejorado cuando había muchas tareas concurrentes en ejecución.
El parche milagroso tan solo necesitaba de 200 líneas más en el kernel para aplicar esos cambios, pero ahora Lennart Poettering, un desarrollador de Red Hat, ha descubierto una forma de mejorar el rendimiento del sistema con el mismo resultado que el parche pero con un método mucho más sencillo y directo para los usuarios.
Como indican en WebUpd8, basta con ejecutar dos comandos y añadir cuatro líneas a nuestro .bashrc para poder acceder a estas mejoras. Parece increíble, dicen en el artículo original, pero por lo visto los que han probado los cambios han confirmado que el método de Lennart funciona pefectamente. Alucinante.
Los cambios originales no funcionan en Ubuntu, pero ya hay solución también para estos usuarios, así que si queréis probar dicho método, podéis hacerlo de la siguiente forma:
Si vuestra distribución no es Ubuntu
Tendréis que añadir estas líneas a vuestro ~/.bashrc
if [ "$PS1" ] ; then mkdir -m 0700 /sys/fs/cgroup/cpu/user/$ echo $ > /sys/fs/cgroup/cpu/user/$/tasks fi
Y luego ejecutar dos comandos como superusuario:
mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu mkdir -m 0777 /sys/fs/cgroup/cpu/user
De hecho, un usuario afirma que este método funciona aún mejor que el parche al kernel que se había descubierto previamente, alucinante. El mensaje con algunos benchmarks, aquí.
Si sois usuarios de Ubuntu
Tendréis que completar algunos pasos más habrá que hacer lo siguiente: Cambiar «/sys/fs/» por «/dev«, así que habrá que añadir los siguientes comandos en nuestro fichero /etc/rc.local (tendremos que abrirlo con sudo gedit /etc/rc.local), y justo encima de la línea «exit 0» añadir lo siguiente:
mkdir -p /dev/cgroup/cpu mount -t cgroup cgroup /dev/cgroup/cpu -o cpu mkdir -m 0777 /dev/cgroup/cpu/user echo "1" > /dev/cgroup/cpu/user/notify_on_release echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
Y convertir el fichero en ejecutable:
sudo chmod +x /etc/rc.local
Ahora tendremos que añadir lo siguiente en nuestro ~/.bashrc file (para editarlo: gedit ~/.bashrc):
if [ "$PS1" ] ; then mkdir -m 0700 /dev/cgroup/cpu/user/$$ echo $$ > /dev/cgroup/cpu/user/$/tasks fi
Ahora ejecutamos este comando:
sudo gedit /usr/local/sbin/cgroup_clean
Y en el fichero que salga para editar añadimos lo siguiente:
#!/bin/sh rmdir /dev/cgroup/cpu/$1
Ahora salvamos el fichero y lo convertimos en un ejecutable con el comando siguiente:
sudo chmod +x /usr/local/sbin/cgroup_clean
Y por último tendremos que reiniciar el ordenador, o bien ejecutar a mano el fichero /etc/rc.local. Para esto último tendréis que escribir:
sudo /etc/rc.local
En este pequeño fichero de texto podéis encontrar las instrucciones actualizadas, pero en esencia estos son los pasos que podréis realizar para acceder a estas mejoras.
En WebUpd8 además dan las instrucciones necesarias para que, si queréis, podáis descargar un kernel con el parche de 200 líneas ya aplicado (para Ubuntu 10.10 64 bits) aquí -su autor explica todo en este foro de Phoronix-, pero es que aún hay más: otro lector ha mandado un parche para el kernel con otro planificador llamado bfs (el célebre planificador creado por Con Kolivas) que también podéis aplicar a vuestros kernels en Ubuntu 10.10. Como dicen en el artículo original, los autores no se responsabilizan de los «efectos secundarios» ;), así que tened cuidado al usar dichos parches.
Para descargar este último kernel para Ubuntu 10.10 con el planificador bfs: