[CentOS-es] Alternativa más simple al parche de 200 líneas que mejora respuesta del núcleo de Linux.

Leandro Blanco lblancoamat en gmail.com
Sab Nov 20 21:10:46 EST 2010


Hace unosdías publicamos un artículo 
<http://www.alcancelibre.org/article.php/parche-200-lineas-linux-hace-maravillas>referenteal 
parche de 200 líneas para el núcleo de Linux 
<http://www.phoronix.com/scan.php?page=article&item=linux_2637_video&num=1>que 
mejoraba dramáticamente la capacidad de respuesta del sistema. Pues 
bien, les tengo excelentes noticias: Lennart Poettering, desarrollador 
de Red Hat, ha enviado un mensaje a Linus Torvalds con una alternativa 
que hace losmismos resultados <http://lkml.org/lkml/2010/11/16/392>, con 
la diferencia de que solo requiere ejecutardos mandatos y añadir cuatro 
líneas a ~/.bashrc 
<http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html>. 
De acuerdo a Lennart, este método tiene aún mejores resultados que el 
parche de 200 líneas.*ACTUALIZADO 2010-10-20 16:00.*


      Método para Fedora 13 y 14.

    *Sugerencia*: activar e iniciar el servicio cgconfig (muchos suelen
    desactivar éste para optimizar el arranque del sistema). Como root
    ejecutar:

    chkconfig cgconfig on
    service cgconfig start

    Lo anerior hace que sea*innecesario ejecutar|mount -t cgroup -o cpu
    none /cgroup/cpu|*.

Para utilizar este métodocon Fedora 13 o 14 
<http://lkml.org/lkml/2010/11/16/413>, cómo usuario, añadir lo siguiente 
en el fichero ~/.bashrc del usuario que se acostumbre utilizar:

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

Como root, crear el fichero /bin/rmcgroup con si siguiente contenido:

#!/bin/bash
rmdir /cgroup/cpu/$1

El fichero debe hacerse ejecutable:

chmod +x /bin/rmcgroup

Y como root, ejecutar lo siguiente:

mount -t cgroup -o cpu none /cgroup/cpu
mkdir -p -m 0777 /cgroup/cpu/user
echo "/bin/rmcgroup">  /cgroup/cpu/release_agent

Para que esto se ejecute automáticamente, puede añadirse lo anterior en 
/etc/rc.local, de la siguiente manera:

# El siguiente mount es innecesario si se activó el servicio cgconfig
mount -t cgroup -o cpu none /cgroup/cpu>  /dev/null 2>&1
# Necesario para permitir a los usuarios escritura en dicha ruta.
mkdir -p -m 0777 /cgroup/cpu/user>  /dev/null 2>&1
# Especificar que utilizar para liberar agente
echo "/bin/rmcgroup">  /cgroup/cpu/release_agent


      Método para Ubuntu.

Para utilizarlo en Ubuntu, como root hay que añadir lo siguiente al 
fichero /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

Y hacer ejecutable a /etc/rc.local

sudo chmod +x /etc/rc.local

A continuación, se añade lo siguiente en el fichero ~/.bashrc del 
usuario que se acostumbre utilizar:

if [ "$PS1" ] ; then
	mkdir -p -m 0700 /dev/cgroup/cpu/user/$$>  /dev/null 2>&1
	echo $$>  /dev/cgroup/cpu/user/$$/tasks
	echo 1>  /dev/cgroup/cpu/user/$$/notify_on_release
fi

Crear el fichero /usr/local/sbin/cgroup_clean con el siguiente contenido:

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

Hacer ejecutable /usr/local/sbin/cgroup_clean:

chmod +x /usr/local/sbin/cgroup_clean

Y finalmente, reiniciar el sistema.

Fuente de información:Web Upd8 
<http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html>yLKML.org 
<http://lkml.org/lkml/2010/11/16/413>.



Más información sobre la lista de distribución CentOS-es