Linux recibe importante mejora en sólo 200 líneas de código
Hace unos días se propuso un pequeño cambio en Linux que logra una importante mejora cuando el sistema se ve sujeto a grandes demandas del procesador. Se trata de sólo unas 200 líneas que cambian la forma en que estamos acostumbrados a experimentar la respuesta del escritorio bajo estas condiciones, y hasta el mismísimo Linus se encuentra entre los sorprendidos por su limpieza y sobre todo, por su efectividad.
Linux en general se comporta bien realizando varias tareas al mismo tiempo, pero en sistemas de escritorio el uso intensivo de CPU puede hacer que las aplicaciones típicas se sientan más lentas. Por ejemplo si se está codificando un video, compilando una aplicación o actualizando el sistema, aplicaciones mundanas como un navegador o la reproducción de video se verán afectadas, causando que el usuario sienta que el sistema está más lento.
El cambio propuesto modifica la forma en que se distribuye la CPU entre las distintas tareas que está corriendo el sistema, de tal forma que esta distribución no deje sin recursos a una aplicación cuando otra está solicitando intensivamente el procesador. No se trata de que el sistema corra más rápido, sino de que las aplicaciones no se sientan lentas bajo estas condiciones.
Básicamente lo que hace el cambio es agrupar las tareas para que un proceso que levanta varios hilos de ejecución compita de igual forma con otra aplicación que también requiere de la atención del procesador. Esta agrupación se crea al vuelo de forma automática, sin que el usuario tenga que hacer nada especial.
Este cambio será percibido por todos los usuarios de escritorio, ya hay varios alabando el cambio, incluyendo a Linus Torvalds:
Sí, tengo que decir que estoy (felizmente) sorprendido por lo pequeño que termina siendo el parche, y cómo no es ni intrusivo ni feo [...] Es una mejora en cosas como el desplazamiento suave (scrolling), pero donde lo he encontrado más interesante es cómo pareciera hacer que las páginas web cargaran más rápido [...] Pienso derechamente que este es uno de esos parches que significan una real mejora. Buen trabajo. La agrupación de tareas va desde “útil para algunos casos” hasta “esto es una característica asesina”.
Michael Larabel de Phoronix, el sitio que presentó este trabajo al público general, preparó un par de videos en donde se puede ver el antes y el después de aplicar el cambio. Si bien se trata de un caso extremo ya que usa una máquina bastante potente, ilustra claramente la contundencia del cambio, y otros usuarios ya han confirmado que se percibe perfectamente en otros escenarios con aplicaciones y hardware más comunes.
La prueba consiste en crear un proceso intensivo en CPU como el compilar el kernel con 64 tareas en paralelo, al mismo tiempo que se realizan tareas “mundanas” como reproducir un video en 1080p, navegar por la web y ejecutar una aplicación OpenGL simple. En el primer video se puede ver que la reproducción del video se vuelve imposible, mientras que las otras aplicaciones tienen problemas en responder.
En el segundo video, con el parche aplicado, se ve que a pesar de estar corriendo la tarea intensiva (compilación con 64 tareas), la reproducción del video en 1080p no se ve afectada, y el resto del sistema se puede seguir usando como si nada.
Link: The ~200 line Linux kernel patch that does wonders (Phoronix.com)
¿Por qué todo el mundo quiere emparejar a Nokia?
Noam Chomsky dice que Google Glass destruye a l...
Más de 50 amenazas terroristas fueron detenidas...
Todo lo que debes saber sobre las unidades de e...
NASA llama a que la ayuden a identificar astero...
Nuevas imágenes de Windows 8.1 muestran el redi...
Edward Snowden: El gobierno no podrá encubrir esto
Las redes sociales "rotas"
120 Comentarios
Linux recibe importante mejora en sólo 200 líneas de código
¿Para cuando se podrán actualizar los Kernel con esta mejora?
ResponderSeria interesante probarlo en los equipos de casa.
para el kernel 2.6.37 supuestamente estara incorporado
y como siempre, estara primero disponible para el usuario final en archlinux
y no existirá ya una PKGBUILD con este parche aplicado en AUR
En todo caso Chuck Norris la hacía en 10 lineas...
Responder...y puede usar esas líneas para causar la misma mejora en Windows...
La version de Linux de Chuck Norris no necesita la mejora para correr más rápido.
la version del sistema operativo de Chuck Norris no se atreve a quedarse pegada
..."La prueba consiste en crear un proceso intensivo en CPU como el compilar el kernel con 64 tareas en paralelo, al mismo tiempo que se realizan tareas “mundanas” como reproducir un video en 1080p, navegar por la web y ejecutar una aplicación OpenGL simple."
En todo caso Chuck Norris puede hacer todo eso con un Atom de 1.3 Ghz y no se le pega tampoco.
pensar que BeOS hacia eso hace mucho tiempo atrás-------
ResponderPero esta mejora es aplicable cuando utilizas mas de una tty o tienes cargas pesadas corriendo en una tty como en el video.
ResponderPara el resto de casos no hay diferencia alguna y es donde a la mayoria de los mortales nos interesan mejoras.
El software siempre es imperfecto, por lo tanto, es importante mejorarlo. Lo que me gusta de Gnu/Linux (tanto del kernel como de la distro), es que así como Microsoft, se liberan parches para corregir errores, pero difiere en que se liberan muchas actualizaciones que mejoran el desempeño y el comportamiento (hace poco fue AppArmor, entre otros). No digo que Microsoft no lo haga, pero sin duda, la mayoría de las veces que se instalan actualizaciones en winbugs dice algo así: "parche de seguridad".
Responder@sebastian ulloa : No conozco distros para matemáticos, pero sí conozco un programa que se llama SAGE, que es como una aplicación de Python (bajo entorno Web) pensada como alternativa a Maple, Matlab y todas esas cosas.
ResponderEso sí, pregunta... Cómo implemento esa mejora? Debo reconocer que mi conocimiento en Linux es más de paquetes precompilados que se descargan con gestor de paquetes, no tanto de meterle código fuente al sistema...
para implementarla tendrías que compilar el kernel o dependiendo de tu distribución esperar que esté empaquetada y lista para instalar desde repositorios. Lo otro es esperar a que las próximas versiones de las distintas distros incluyan solas estas mejoras por ahí por arbil-mayo.
disculpen la ignorancia, pero he tratado varias veces de reproducir pelis HD en ubuntu 10.10 y siempre se me ralentizan... no tengo problemas de maquina dado que es un computador de hace menos de un año... he encontrado que se debe compilar nuevamente los reproductores y esas cosas pero... hay alguna forma mas simple? asi como a prueba de noob?
Responderaunque sin detalles es difícil dar una solución, podrías probar con VLC en vez de Totem o Gnome Player que usa distintos motores de reproducción, es lo que se me ocurre por el momento.
ubuntu 10.10
Prueba usando mplayer en lugar de totem
ResponderQué bien que sólo 200 líneas de código mejoren tanto el kernel Linux.Es que lo encuentro increíble,no sé...
ResponderAhora la duda:¿esto servirá para que distros como Ubuntu no se caigan a cada rato cada vez que abro Firefox mientras instalo Flash y tengo la terminal abierta?.Es que lo pruebo en el LiveCD y no me explico cómo es que se caiga a cada rato :(.
En fin,puede que sea un error de novato...
saludos
Increible!!!, la diferencia es notable, esto es un avance muy importante para linux que de por si ya era mas veloz que otros sistemas operativos
ResponderSuper bueno... Que bien! ¡FELICITACIONES!
ResponderLo divertido es leer a Poettering alegando que él puede hacerlo mejor con su "systemd"
Me equivoqué, quería responder abajo :P
Están generalizando las cosas, no provoca mejoras en el "escritorio", si tomamos como escritorio lo que un usuario común y corriente (no un ñoño hacker) usa diariamente.
ResponderHe seguido el thread, y aunque me cae mal, estoy de acuerdo con Lennart Poettering, un usuario de escritorio normal no verá "ninguna mejoría" en su experiencia.
Lo que sí hace, es una mejora impresionante de rendimiento y nadie lo puede negar, pero solo si compilas un kernel con un make -j 64 y al mismo tiempo lanzas "desde una terminal" el navegador web, y también mplayer "desde otra terminal", porque el agrupamiento de tareas lo realiza por TTY. Es decir, un usuario normal no anda lanzado aplicaciones desde la terminal, así que la "impresionante mejora" no mejora, valga la redundancia, nada en la interacción corriente de un usuario normal con su escritorio linux.
Creo conveniente que se haga la aclaración, porque cuando las distros usen el kernel con el parche aplicado, no pasará nada para la mayoría de los usuarios.
el ejemplo es un tanto exagerado, pero no significa que no mejore el uso cotidiano del sistema operativo.
No digo que no mejore, lo hace y lo hace de la puta madre, pero tienes que lanzar todo desde una terminal, o no notarás la diferencia. Para un hacker de linux acostumbrado a las TTY no hay problemas, pero un usuario medio no lanza primero una terminal y de ahí escribe "firefox" para navegar por internet.
Creo que te equivocas, la agrupación de tareas no ocurre por TTY, de hecho nada tiene que ver, porque cada aplicación tiene su PID aparte, que haya sido lanzada desde esa TTY no quiere decir que los recursos se los pida a la TTY, esa TTY sólo le provee del STDIN, STDOUT y STDERROR (entre otras).
El parche definitivamente sí es una mejora para el usuario de escritorio.
Creo que en este foro ya no los trolls son como antes...
Pasa un rato por la lista de correo de linux, lee, infórmate. Ni siquiera me voy a molestar en responderte, porque no tienes idea de lo que hablas.
http://lkml.org/lkml/2010/11/16/420
Bueno si agrupa por tty podría tb agrupar por pid, debe ser una primera aproximación, lógico que considerarán al usuario de escritorio
Efectivamente, por eso puse como ejemplo "si se está codificando un video, compilando una aplicación o actualizando el sistema".
Hay usuarios que están reportando buenas experiencias con otro tipo de aplicaciones que normalmente se comen la CPU, pero no dan mayores detalles.
Independiente de la parte teórica, aquí lo conveniente es probar y ver uno mismo.
Olvidé mencionar que la agrupación por TTY es el estado actual, eso no tiene por qué ser definitivo y en la misma mailing list hay varias ideas dando vueltas, por ejemplo incorporar otro tipo de agrupaciones que tengan sentido para un campo más amplio de casos.
Lo importante aquí es la idea que hay detrás: Puedes repartir los recursos de tal forma que las aplicaciones que te importan no sufran por otras aplicaciones que pueden esperar. El desafío es hacerlo de una forma transparente para el usuario y por lo que se ve, la primera aproximación es agrupar via TTY, pero no es la única opción.
Probé el parche en el note arcaico que tengo en la choza: un Celeron M de 1.4Ghz y se nota más que la chachu la optimización xD!
ResponderEso sí, las aplicaciones que están corriendo solas y siguen pidiendo threads/hilos no tienen una mejora; siguen igual. Era de esperar en todo caso... Esas líneas no las puso Chuck Norris 8(
Saludos!
.. Que buen release por linux, es un gran avance a la plataforma Open Source ... a testiar!
ResponderAlguien cacha una distro para el Macbook5,2? que funcione con las 2 CPU's el ACPI activado y en 64 bits? Quería cambiarme a Linux pero elegí el único MAcbook blanco incompatible con Linux.
ResponderSe verán beneficiadas las distros de servidores como Redhat???
ResponderDebemos democratizar el uso de Linux y revertir el mal transversal que relaciona los mayores costos (por ignorancia) en los más desprotegidos.
ResponderAquí es igual, el espectro élite de la sociedad de la informática usa y se beneficia del sistema abierto con un costo ínfimo versus unas ventajas incomparables, mientas el resto de los mortales están condenados a beneficios mediocres y a un alto costo por impuestos, licencias, marketing, etc.
Adolecemos de un dilema o trauma permanente y consiste en la dicotomía entre fomentar las ventajas sociales que se derivan de un fenómeno económico que no se regula por el libre mercado, como es el fomento de bienes y servicios sin fines de lucro, versus la afectación económica “posible y cortoplacista”de esas políticas públicas en una supuesta “competencia desleal” para el sector privado, el capitalismo, las inversiones foráneas y en definitiva los grupos de presión del mercado con muchos fines de lucro.
"Básicamente lo que hace el cambio es agrupar las tareas para que un proceso que levanta varios hilos de ejecución compita de igual forma con otra aplicación que también requiere de la atención del procesador. Esta agrupación se crea al vuelo de forma automática, sin que el usuario tenga que hacer nada especial."
ResponderMe parecio extraña la explicación porque no encaja con la compilación en paralelo de kernel Linux. En esa labor no se destaca por crear multiples hilos desde un proceso, sino por ejecutar distintos procesos simultaneamente. Leyendo la fuente de la noticia encontre como funciona realmente: Agrupa procesos que tengan la misma TTY, y la competencia se da entre estos grupos. Ejemplo:
Cuando ejecutan mplayer para ver a Tori Black en 1080p desde su Desktop favorito, mplayer hereda la tty (ttyX) del servidor grafico
Luego al abrir una terminal (konsole, gnome-terminal, xterm, etc), a esta se le asocia otra tty (ptsY) y al correr el script de compilación de kernel Linux en la terminal, los procesos nuevos heredaran como tty a ptsY. Resumiendo quedan dos grupos, ttyX y ptsY, ambos competiran de igual a igual. El resultado es que si hay 64 procesos de compilación simultaneos, competiran como uno solo contra mplayer.
@Astroza
ResponderEstás en lo correcto. Sobre el uso de los terminos "proceso/hilo" no quise distinguir entre esos conceptos en el artículo original, para no complicar a los lectores.
esto le vendra como anillo al dedo a muchos netbook
Responderde acuerdo con el parche de 200 linea de código arregla por completa y tendrá menos consumo y lo q viene para gnome será interesante para ver como andará gnome-shell, wayland y kde sus estilizadas mejoras en el 4.5 RC1, no es como windows que solo se arregla instalando linux, cmo decían o mac, como copia barata de los efectos que tendrá gnome 3...
ResponderMe recuerda a la 'multitarea por prioridad' de windows 95. ¿No se pierde desempeño en las tareas que quedaron en el trasfondo en beneficio de la que está en primer plano?
ResponderDe hecho, Linux es multitarea por prioridad desde el momento en que fue creado.
La prioridad la ajustas con el comando nice. También hay herramientas gráficas que te permiten hacer eso.
Lo que pasa es que al ser multitarea distribuye las tareas en la porción que ocupan de la CPU. Esto es sólo otra forma de agrupar las tareas, actualmente por el tty, porque en rigor, no existe una forma pertinente de clasificar las tareas para este propósito (véase ps aux y pstree)
En todo caso, es sumamente controvertido el hecho de si Windows es multitarea o no.
Ohhh, ha salido "tanto" experto en sistemas operativos...
Responderdejense de hablar weas y remitanse a la noticia.
Y nooooooooo OSX no es linux,
AWESOME!!!!
Responderajajajaj noticia viejaa xd
ResponderDeja tu Comentario