El post que buscas se encuentra eliminado, pero este también te puede interesar

El parche milagro (ahora con script de instalación)

Anuncios

El parche “milagro” de Linux (ahora con script de instalación)


Recordais ese parche “milagro” de 200 lineas de código que mejoraba el rendimiento en la agrupación de tareas ejecutadas desde la consola. Pues bien, he sacado un “ratejo” e implementado un pequeño script (valga la redundancia) para facilitar su instalación. El script (que teneis que ejecutar como root) es el siguiente:


001 #!/bin/bash
002
003 YELLOW="33[1;33m"
004 RED="33[0;31m"
005 ENDCOLOR="33[0m"
006
007 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
008 # PARCHEAR
009 #
010 # Aplica las mejoras del kernel (parche de 200 lineas)
011 # pero en 4 lineas de bash.
012 #
013 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
014 function PARCHEAR()
015 {
016
017 FICHERO="$HOME/.bashrc"
018
019 echo ""
020 echo -e $YELLOW"Parcheando el fichero [${FICHERO}]..."$ENDCOLOR
021 echo ""
022
023 # Añadiendo cadenas a .bashrc
024
025 # Primero buscamos una cadena "base" para ver si esta o no ya añadido
026 LINEAS=`cat $FICHERO | grep "/dev/cgroup/cpu/user" | wc -l`
027 if [ "$LINEAS" == "0" ];
028 then
029 echo "Añadiendo parche para rendimiento..."
030 echo "if [ "$PS1" ] ; then" | tee -a $FICHERO
031 echo "mkdir -m 0700 /dev/cgroup/cpu/user/$$" | tee -a $FICHERO
032 echo "echo $$ > /dev/cgroup/cpu/user/$$/tasks" | tee -a $FICHERO
033 echo "fi" | tee -a $FICHERO
034 else
035 echo "Parece que parche ya fue incluido en $FICHERO"
036 fi
037
038 FICHERO="/etc/rc.local"
039 echo ""
040 echo -e $YELLOW"Parcheando el fichero [${FICHERO}]..."$ENDCOLOR
041 echo ""
042
043 # Añadiendo cadenas a /etc/rc.local
044
045 # Primero buscamos una cadena "base" para ver si esta o no ya añadido
046 LINEAS=`cat $FICHERO | grep "/dev/cgroup/cpu/release_agent" | wc -l`
047 if [ "$LINEAS" == "0" ];
048 then
049
050 echo "Añadiendo parche para rendimiento..."
051 POSI=`cat $FICHERO | grep -n "exit 0" | sort -nr | head -n 1 | awk -F: '{print $1}'`
052 #echo "Posi es [$POSI]"
053 echo "Sacando copia de seguridad de $FICHERO en /etc/rc.local.backup.txt"
054 cp /etc/rc.local /etc/rc.local.backup.txt
055 sed "${POSI}imkdir -p /dev/cgroup/cpunmount -t cgroup cgroup /dev/cgroup/cpu -o cpunmkdir -m 0777 /dev/cgroup/cpu/usernecho "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent" /etc/rc.local | tee /etc/rc.new.local
056 mv /etc/rc.new.local /etc/rc.local
057
058 #echo "#========== parche mejora ============" | tee -a $FICHERO
059 #echo "mkdir -p /dev/cgroup/cpu" | tee -a $FICHERO
060 #echo "mount -t cgroup cgroup /dev/cgroup/cpu -o cpu" | tee -a $FICHERO
061 #echo "mkdir -m 0777 /dev/cgroup/cpu/user" | tee -a $FICHERO
062 #echo "echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent" | tee -a $FICHERO
063 #echo "#====================================" | tee -a $FICHERO
064 else
065 echo "Parece que parche ya fue incluido en $FICHERO"
066 fi
067
068 echo ""
069 echo -e $YELLOW"Dando permisos de ejecucion a [${FICHERO}]..."$ENDCOLOR
070 echo ""
071 sudo chmod +x $FICHERO
072
073 FICHERO="/usr/local/sbin/cgroup_clean"
074 echo ""
075 echo -e $YELLOW"Creando el fichero [${FICHERO}]..."$ENDCOLOR
076 echo ""
077 if [ -f $FICHERO ];
078 then
079 echo "#!/bin/sh" | tee $FICHERO
080 echo "rmdir /dev/cgroup/cpu/$*" | tee -a $FICHERO
081
082 else
083 echo "Fichero $FICHERO ya existe."
084 fi;
085
086 echo ""
087 echo -e $YELLOW"Dando permisos de ejecucion a [${FICHERO}]..."$ENDCOLOR
088 echo ""
089 sudo chmod +x $FICHERO
090
091 echo "FINALIZADO. Parche aplicado, reinicia y disfruta de Linux..."
092
093 }
094 #-----------------------------------------------------------------------------
095
096 # Comprobar que eres usuario root
097 if [ $USER != root ]; then
098 echo -e $RED"Error: tienes que ser root."
099 echo -e $YELLOW"Finalizando..."$ENDCOLOR
100 exit 0
101 fi
102
103 # Parchear el Sistema
104 PARCHEAR
105
106 # end of parche.sh


Nota: no me hago responsable de si se rompe algo en tu equipo (que ya tengo bastante con soportar a “zanganos” en el trabajo , asi que ejecutalo bajo tu propia responsabilidad). De todas formas es fácil volver “hacia atrás” si se siguen las instrucciones del post original. Sin embargo, antes de ejecutar el script te recomiendo sacar una copia de seguridad de tu “.bashrc” y de tu “/etc/rc.local”. Si no da muchos problemas, lo empaquetare como .deb.

Descarga | (Renombra el .doc a .sh) parche.sh

recomiendo usar el doc

fuente: http://ubuntulife.wordpress.com/2010/11/22/el-parche-milagro-de-linux-ahora-con-script-de-instalacion/

El parche milagro (ahora con script de instalación)parchescript

13 comentarios - El parche milagro (ahora con script de instalación)

@dandy1
No hay mal que por bien no venga.

ahora
@keiserx
cuando reinstale ubuntu lo voy a probar a ver que onda a favs
@krafty
003 YELLOW="�33[1;33m"
004 RED="�33[0;31m"
005 ENDCOLOR="�33[0m"



Que caracteres no tomo???
lo podes arreglar?
@asesinoscereales
Si es bueno debería de venir en el nuevo Kernel en teoría. Así que a esperar.
@MukenioArg
Cuando posteas codigo hacelo entre los tags
 

asi te evitas problemas de caritas.
Saludos
@MukenioArg
no salieron los tags . Hacelo entre los tags [ code ] y [ /code ].
Sacale los espacios
@Shenlong
Una pregunta a ver si alguien me puede responder: este parche no perjudicaria el rendimiento en equipos de baja potencia? porque si se ejecutan las tareas en paralelo es como que queres hacer pasar mas cosas por un embudo de las que entran y se termina atascando todo, por lo menos en mi P4 a 2.4 con 1gb de ram no note diferencia grande de rendimiento
No se, es solo una suposición, si alguien que sabe mucho de programacion que me diga asi me saco esta duda, mp plis
@santiago79
yo trate de ponerlo pero ahora me sale
mkdir: no se puede crear el directorio «/dev/cgroup»: Permiso denegado bash: /dev/cgroup/cpu/user/2027/tasks: No existe el archivo o directorio bash: /dev/cgroup/cpu/user/2027/notify_on_release: No existe el archivo o directorio rmdir: No se pudo eliminar «/dev/cgroup/cpu/»: No existe el archivo o directorio

cuando inicio la terminal
si alguien sabe como soluciono esto que me diga
muchas gracias