Temas Calientes

Linux recibe importante mejora en sólo 200 líneas de código

tux

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.

YouTube Preview Image

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.

YouTube Preview Image

Link: The ~200 line Linux kernel patch that does wonders (Phoronix.com)

120 Comentarios

Linux recibe importante mejora en sólo 200 líneas de código

Páginas: 1 2
Ver Todos
Thumb up 0 Thumb down 0 avatar_Jin Mishima Jin Mishima dijo hace 3 años

¿Para cuando se podrán actualizar los Kernel con esta mejora?
Seria interesante probarlo en los equipos de casa.

Responder
Thumb up 0 Thumb down 0 avatar_madek madek dijo hace 3 años

para el kernel 2.6.37 supuestamente estara incorporado
y como siempre, estara primero disponible para el usuario final en archlinux

Thumb up 0 Thumb down 0 avatar_Andrés Andrés dijo hace 3 años

y no existirá ya una PKGBUILD con este parche aplicado en AUR

Thumb up 1 Thumb down 0 avatar_Neo Neo dijo hace 3 años

En todo caso Chuck Norris la hacía en 10 lineas...

Responder
Thumb up 1 Thumb down 0 avatar_What!! What!! dijo hace 3 años

...y puede usar esas líneas para causar la misma mejora en Windows...

Thumb up 0 Thumb down 0 avatar_ss ss dijo hace 3 años

La version de Linux de Chuck Norris no necesita la mejora para correr más rápido.

Thumb up 1 Thumb down 0 avatar_bpbrainiak bpbrainiak dijo hace 3 años

la version del sistema operativo de Chuck Norris no se atreve a quedarse pegada

Thumb up 0 Thumb down 0 avatar_:Droid :Droid dijo hace 3 años

..."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.

Thumb up 0 Thumb down 0 avatar_bebe bebe dijo hace 3 años

pensar que BeOS hacia eso hace mucho tiempo atrás-------

Responder
Thumb up 0 Thumb down 0 avatar_Chertsey Chertsey dijo hace 3 años

Pero esta mejora es aplicable cuando utilizas mas de una tty o tienes cargas pesadas corriendo en una tty como en el video.

Para el resto de casos no hay diferencia alguna y es donde a la mayoria de los mortales nos interesan mejoras.

Responder
Thumb up 0 Thumb down 0 avatar_David David dijo hace 3 años

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
Thumb up 0 Thumb down 0 avatar_Héctor Héctor dijo hace 3 años

@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.

Eso 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...

Responder
Thumb up 0 Thumb down 0 avatar_What!! What!! dijo hace 3 años

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.

Thumb up 0 Thumb down 0 avatar_dasinflames dasinflames dijo hace 3 años

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?

Responder
Thumb up 0 Thumb down 0 avatar_What!! What!! dijo hace 3 años

aunque 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.

Thumb up 0 Thumb down 0 avatar_Bim Bim dijo hace 3 años

ubuntu 10.10

Thumb up 0 Thumb down 0 avatar_Daniel P. Daniel P. dijo hace 3 años

Prueba usando mplayer en lugar de totem

Responder
Thumb up 0 Thumb down 0 avatar_mat1986 mat1986 dijo hace 3 años

Qué bien que sólo 200 líneas de código mejoren tanto el kernel Linux.Es que lo encuentro increíble,no sé...
Ahora 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

Responder
Thumb up 0 Thumb down 0 avatar_Shapord Shapord dijo hace 3 años

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

Responder
Thumb up 0 Thumb down 0 avatar_nehp nehp dijo hace 3 años

Super bueno... Que bien! ¡FELICITACIONES!

Responder
Thumb up 0 Thumb down 0 avatar_smancill smancill dijo hace 3 años

Lo divertido es leer a Poettering alegando que él puede hacerlo mejor con su "systemd"

Thumb up 0 Thumb down 0 avatar_smancill smancill dijo hace 3 años

Me equivoqué, quería responder abajo :P

Thumb up 0 Thumb down 0 avatar_smancill smancill dijo hace 3 años

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.

He 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.

Responder
Thumb up 0 Thumb down 0 avatar_Andrés Andrés dijo hace 3 años

el ejemplo es un tanto exagerado, pero no significa que no mejore el uso cotidiano del sistema operativo.

Thumb up 0 Thumb down 0 avatar_smancill smancill dijo hace 3 años

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.

Thumb up 0 Thumb down 0 avatar_Samuel Samuel dijo hace 3 años

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...

Thumb up 0 Thumb down 0 avatar_smancill smancill dijo hace 3 años

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

Thumb up 0 Thumb down 0 avatar_G0rdo G0rdo dijo hace 3 años

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

Thumb up 0 Thumb down 0 avatar_Franco Catrin Franco Catrin dijo hace 3 años

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.

Thumb up 0 Thumb down 0 avatar_Franco Catrin Franco Catrin dijo hace 3 años

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.

Thumb up 0 Thumb down 0 avatar_Francisco A Redard Francisco A Redard dijo hace 3 años

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!

Eso 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!

Responder
Thumb up 0 Thumb down 0 avatar_LuD LuD dijo hace 3 años

.. Que buen release por linux, es un gran avance a la plataforma Open Source ... a testiar!

Responder
Thumb up 0 Thumb down 0 avatar_Smartbook Smartbook dijo hace 3 años

Alguien 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.

Responder
Thumb up 0 Thumb down 0 avatar_terry_shadow terry_shadow dijo hace 3 años

Se verán beneficiadas las distros de servidores como Redhat???

Responder
Thumb up 0 Thumb down 0 avatar_Miguel Feuereisen Miguel Feuereisen dijo hace 3 años

Debemos democratizar el uso de Linux y revertir el mal transversal que relaciona los mayores costos (por ignorancia) en los más desprotegidos.
Aquí 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.

Responder
Thumb up 0 Thumb down 0 avatar_Astroza Astroza dijo hace 3 años

"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."

Me 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.

Responder
Thumb up 0 Thumb down 0 avatar_Franco Catrin Franco Catrin dijo hace 3 años

@Astroza

Está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.

Responder
Thumb up 0 Thumb down 0 avatar_miguelost miguelost dijo hace 3 años

esto le vendra como anillo al dedo a muchos netbook

Responder
Thumb up 0 Thumb down 0 avatar_elfandelinux elfandelinux dijo hace 3 años

de 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...

Responder
Thumb up 0 Thumb down 0 avatar_Leo Leo dijo hace 3 años

Me 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?

Responder
Thumb up 0 Thumb down 0 avatar_Andrés Andrés dijo hace 3 años

De 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)

Thumb up 0 Thumb down 0 avatar_Andrés Andrés dijo hace 3 años

En todo caso, es sumamente controvertido el hecho de si Windows es multitarea o no.

Thumb up 0 Thumb down 0 avatar_who who dijo hace 3 años

Ohhh, ha salido "tanto" experto en sistemas operativos...
dejense de hablar weas y remitanse a la noticia.
Y nooooooooo OSX no es linux,

Responder
Thumb up 0 Thumb down 0 avatar_TurboMAC TurboMAC dijo hace 3 años

AWESOME!!!!

Responder
Thumb up 0 Thumb down 0 avatar_hh hh dijo hace 3 años

ajajajaj noticia viejaa xd

Responder
Páginas: 1 2
Ver Todos

Deja tu Comentario

La opción de comentar está abierta a todos los usuarios, pero te pedimos por favor mantenerte dentro del tema del artículo y no publicar comentarios ofensivos o publicidad basura. Nos reservamos el derecho de eliminar cualquier comentario que no cumpla estas reglas.

Para que aparezca tu foto en vez del icono genérico en tu comentario, el email con el que comentas debe estar inscrito en Gravatar.

*