El parche de 200 líneas para el kernel, o su versión en espacio de
usuario, mejora el rendimiento interactivo agrupando los procesos
por tty
. La mejora sólo será notable si tenemos varios procesos
asociados a un terminal que tengan un consumo importante de CPU, ya que
la potencia de ésta no se repartirá entre el número de procesos sino
entre el número de grupos de procesos. De ahí que sea una mejora
interactiva, el ordenador no irá más rápido, pero sí tendremos la
sensación de que responde más rápido. Este parche requiere un kernel
superior al 2.6.36 con soporte a grupos de tareas.
Para saber los procesos que están asociados a una terminal podemos ejecutar:
$ ps -e | grep -v ?
(Los procesos que tienen un interrogante no están asociados a ninguna terminal.)
Para aplicar el parche, en Ubuntu:
-
editamos el archivo
/etc/rc.local
y añadimos, antes delexit 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
-
lo hacemos ejecutable, por si acaso no lo estuviera ya:
$ sudo chmod +x /etc/rc.local
-
editamos nuestro
~/.bashrc
y añadimos:if [ "$PS1" ]; then
mkdir -p -m 0700 /dev/cgroup/cpu/user/
$$ echo $$> /dev/cgroup/cpu/user/$$/tasks echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release fi -
creamos el archivo
/usr/local/sbin/cgroup_clean
y añadimos:#!/bin/sh
if [ "\(*" != "/user" ]; then rmdir /dev/cgroup/cpu/\)* fi
-
le damos permisos de ejecución:
$ sudo chmod +x /usr/local/sbin/cgroup_clean
-
y, por último, ejecutamos el script:
$ sudo /etc/rc.local
-
o reiciniamos:
$ sudo reboot