Hace 14 años | Por sergio.rondan a infosertec.com.ar
Publicado hace 14 años por sergio.rondan a infosertec.com.ar

Interesante posteo de Infosertec que nos explica de manera muy simple, para todos los mortales, en que consiste esta nueva mejora del Kernel que ayudaría a manejar de manera más eficiente los recursos de la PC

Comentarios

D

El artículo es inexacto:

[...]si una aplicación se encuentra abierta y no esta siendo utilizada la misma dejara de usar memoria RAM para pasar a ser cargada en la memoria swap del disco rígido.

Eso no es cierto, sin más. La aplicación no pasa a swap si no está siendo utilizada, eso es una burrada

Los fundamentos de la memoria de intercambio (swap) son iguales para Windows, Linux y cualquier sistema moderno que implemente memoria virtual.

Lo que quiere decir (imagino), es que cuando no cabe todo en memoria y se hace necesario recurrir al swap para ejecutar las aplicaciones que pide el usuario, las cosas que se guarden en la memoria de intercambio se categoricen para que su recuperación sea más rápida.

Es decir... el swap es lento (es disco!), y (por lo que entiendo) quieren optimizar su uso. Pero vamos... explicado lo que es explicado, no sé yo

Ooops! Ya lo había dicho #9

vickop

#9 #15 Habiendo estudiado recientemente la memoria virtual en la carrera, opino lo mismo que vosotros. Está lleno de inexactitudes...

m

Francamente, está mucho mejor explicado en el blog que enlaza #8 o en #5

f

Todos sabemos que en Windows la memoria RAM es utilizada y cargada en memoria de forma constante para ejecutar cualquier aplicación del sistema y que si de alguna manera la memoria RAM es superada el sistema comienza a trabajar con la memoria física del disco rígido llamando a ella memoria aleatoria.

Menuda empanada tiene el colega, dios mío. Que quiten esto de portada...

D

#0 Creo que es 2.6.31, no 2.6.1.31

Uno_Mas

OLE!!! Esta gente cada día me merece más respeto... OLE!!!

d

Fatalmente explicado, rozando incluso la falsedad.

De hecho, precisamente lo que ocurría hasta hace poco era que windows sí paginaba las aplicaciones que no se usaban, mientras que linux optaba por una política más agresiva y sólo recurría al "swap" cuando ya no le quedaba RAM. Por lo que parece, van a cambiar esto e intentar determinar qué aplicaciones no se han usado recientemente, para paginarlas.

D

#19 Igual que tu comentario, de diegocg

Mejora de la interactividad bajo presión de memoria: Las páginas de memoria marcadas como PROT_EXEC son páginas que normalmente pertenecen a programas y librerías que se están ejecutando, asi que debería estar cachearse muy bien para proporcionar buenas experiencias de usuario, porque si no están bien cacheadas, las aplicaciones de escritorio sufrirán largas pausas cuando las rutas de código de la aplicación salten a una parte del código que no está cacheada en memoria y tenga que ser releida desde el disco, que es muy lento. Debido a ciertas mejoras de escalabilidad en la gestión de memoria en los últimos kernels, hay ciertos tipos de carga (comunes) que pueden causar que esas páginas _PROT_EXEC_ sean enviadas a la lista de páginas respaldadas por sistema de archivos (las utilizadas para mapear archivos) que son inactivas y pueden ser borradas de la memoria. El resultado es un entorno de escritorio con poca interactividad: las aplicaciones empiezan a responder mal con demasiada facilidad.

En esta versión, se han aplicacion ciertas heurísticas para que sea mucho más dificil sacar a las páginas de código ejecutable de las listas de páginas activas. El resultado es una experiencia de escritorio mejorada: Benchmarks en escritorios con poca memoria miestran que el tiempo de reloj y las faltas "mayores" de memoria (cuando una aplicación salta a una parte del código que no está mapeada en la memoria) se reducen en un 50%, y los números de pswpin se reducen aproximadamente 1/3, eso significa que la interactividad de los escritorios se dobla en condiciones de presión de memoria. Benchmarks de "flusheado" de memoria en un servidor de archivos muestran que el número de faltas mayores cae de 50 a 3 durante lecturas "calientes" del caché.

Es sencillo, se trata de evitar que los ejecutables se transfieran a disco, aunque si se transfieran los datos del programa en marcha.

kumo

Y eso que de por si ya linux va bien en equipos antiguos.

arielmcorg

Es verdad en Fayerwayer esta publicado pero no de la misma manera y no recuerdo que ahi hayan explicado que es la swap. Saludos, Ariel.

HORMAX

El algoritmo de manejo de swap es realmente difícil de optimizar ya que depende de muchas variables.

En los equipos modernos hay muchisima memoria RAM disponible, cada vez mas, sin embargo en los portatiles y equipos antiguos es un recurso escaso, por otro lado depende de las aplicaciones que se estén utilizando, no es lo mismo tener pocas aplicaciones con gran consumo de memoria que muchas de poco consumo.

Mantener los programas en memoria y swapear (Dios que palabro) datos o hacerlo a la inversa depende de cada caso, realmente habría que emplear algoritmos que aprendan tanto de la configuración de los recursos del equipo como del tipo de programas que se está ejecutando en cada momento.

guerrerotook

Tanto Linux como Windows utilizan un sistema de memoria virtual que hace que las aplicaciones puedan gestionar la memoria mejor, así que cuando una aplicación pide memoria al sistema operativo este en vez de reservarla lo que hace es darle a la aplicación un objeto que representa la memoria que ha solicitado pero realmente no está creada, cuando la aplicación accede a ella se reserva la memoria (esto se llama falta de pagina, page fault) así que lo que han hecho la gente de Linux es hacer que las paginas en memoria que estén marcadas con un flag especial PROT_EXEC nunca se persistan a disco.
No os ha pasado que cuando no usáis un programa abierto durante un tiempo y lo restauráis el disco duro empieza a leer mucho, eso es porque todas las páginas de la aplicación están en disco y se tienen que volver a cargar en memoria. De hecho se puede ver un contador que se llama Page Fault para eso.
Así que lo que se comenta en el artículo no es del todo cierto, en cuanto a la parte de Windows, sino te remito a que leas el Windows Internals.

psik0

Esperemos que porten esta mejora a la rama 2.4, que es la mejor para estos equipos antiguos.

D

#22 los kernels 2.4 son viejos, todavía está mantenidos, más o menos, pero no se les añaden nuevas funcionalidades. De todas maneras linux no gasta tanto, si usas userland gnu el cambio de kernel no me parece relevante. Por ejemplo http://www.slitaz.org/en/doc/releases/2.0/relnotes.en.html

#27 Pero la swapiness no diferencia entre ejecutables y datos.

psik0

#28 Lo sé, uso linux desde el 2002. Estuve intentanto rescatar un pentium-133 con 16 mb de ram, y ahi no tienes otra que un kernel 2.4, al menos en la epoca que lo intente, que ya existian los 2.6. El problema de estos es que aumentaron mucho de tamaño respecto a los 2.4.

D

Aquí también y lo veo más claro, en general es diferenciar páginas de memoria de datos de páginas código ejecutable.

cinderl

Hombre, tiene buena pinta, pero tocando la swappiness se consigue un efecto bastante similar. Por defecto ubuntu al menos tiene un 60 de swappiness, en mi ultraportatil la dejo a 20 y apenas tengo accesos a disco. Algo que es extremadamente importate si estas lanzando un sistema operativo desde una memoria sd

jolly

Mi opinión, En mis máquinas con arch, tengo siempre casi toda la RAM ocupada, la mayoría cache y buffer, nunca swap.
Sin intención de parecer que defiendo a windows, una de las cosas que más se critico de vista fue el consumo de RAM. EMHO es lo suyo, usar la ram y no la swap, pero es que win siempre usa swap, aunque tenga memoria de sobra. Mi máquina ahora:
total used free shared buffers cached
Mem: 2065072 904704 1160368 0 65168 468048
-/+ buffers/cache: 371488 1693584
Swap: 2996080 0 2996080

Si hay RAM ¿por que no usarla? es lo mas rápido. Siempre y cuando no uses strigi y nepomuk

m

Una ayuda para esos equipos con bajos recursos que no pueden llegar a fin de mes

D

En el netbook, con arch y 1GB de ram, con un uso normal de ofimática, navegador, correo, un par de pdfs y música, lo máximo que he visto en uso la swap ha sido como 10MB. En el sobremesa (con 4GB), la swap está siempre a 0B.

Rubenix

Vaya, creo que mi portátil, a pesar de ser el más barato que vi de hace 5 años (600€) va a durar más y más. Esto de GNU/linux es una inversión de carallo.

D

Sí, ¿pero soporta equipos Atari 2600 con más de 2048GBytes de memoria o no? Eso es lo que estamos todos esperando. ( para los que ya le iban a dar al rojo!! :))

m

la entrada debería ser más específica, el que no sabe nada de linux ni se entera de qué kernel le están hablando...

g

Excelente explicación Ariel.

a

Tengo una duda... ¿No se podía hacer algo parecido de manera manual con vm.swappiness? Si mal no recuerdo, de esta manera podías elegir el balanceo entre RAM y swap. Recuerdo que se notaba una mejora de rendimiento en equipos poco potentes.