Free -m

trinytron

Wolas!

Tengo una duda sobre el funcionamiento del comando free. Cuando ejecuto free -m sale la siguiente información:

free -m
total used free shared buffers cached
Mem: 2026 1527 498 0 174 939
-/+ buffers/cache: 414 1612
Swap: 988 37 951

El monitor del sistema me dice que tengo ocupado en este instante 414 Mb de RAM (correspondientes a la info del buffer según el free)... entonces la 1º linea a que se corresponde? Me quedan 498 Mb libres de RAM?

Shalauras

La linea de MEM es la memoria del sistema y la linea +/- buffer cache es la memoria que los procesos que tienes activos, esta requiriendo. En mi caso seria:

       total       used       free     shared    buffers cached  

Mem: 3276 733 2543 0 85 508
-/+ buffers/cache: 139 3136
Swap: 2000 0 2000

Lo que quiere decir que mi mem es de 3276 Mb (3GB) tengo usada 733 , libre 2543 y en +/. buffers/cache que mis procesos estiman que usaran 139 Mb de la Memoria y en free, la suma de la memoria usada para buffers y caché más la físicamente libre.
Como ya te digo la "used" de buffers/cache es la estimada y en Mem es la que realmente tienes y usas.

trinytron

Muchas gracías #2!

Pues si que consume mi Ubuntu :S y no tengo casi nada en ejecución...

¿Puede ser que los 900 Mb de memoria reservados a la cache los genere el compiz? sino no encuentro explicación.

Shalauras

#3 no se a que 900 te refieres, si a los 900 del Swap o a los 900 del Cached de MEM.

La swap usa para guardar los datos de los procesos que no tienen que estar en la memoria fisica, asi que digamos que si, es algo elevado, pero xa mas informacion usa el comando top y ves cuanto consume cada uno ves cual es el que esta chupando ahi de mas.

Si te refieres a la cached en MEM, es la memoria cacheada, la que llevas procesada, y no, ese valor no es excesivamente algo. Como ya te digo pon un top y a ver que programa consume de mas.

Un saludo

A

Pues sí, tienes 700 MB ocupados de tu memoria. No es raro, ya que, de primeras, Firefox (que imagino tendrías abierto) ocupa en memoria, como poco, unos 90 MB.

Los datos del "$ free -m" son los que te han dicho. Fíjate en la línea:
total used free shared buffers cached
Mem: 2025 663 1362 0 41 343

Used es la que tienes usada en general.

Si quieres saber qué tareas consumen dicha memoria yo haría, más que un top (con el que sólo ves las "más activas") un ps.
Escribe en el terminal:
$ ps auxf | more

(El more es para ir viéndolo por páginas pulsando la barra espaciadora, sino saldría todo de golpe y no verías todas las tareas).

Correspondientes a memoria hay dos columnas: VSZ y RSS.
VSZ es el tamaño virtual de la aplicación, es decir, TODA ella.
RSS es la parte de la aplicación que está en memoria principal (RAM).
Es decir, que si Firefox, como aplicación, ocupa 250 MB, no todo el programa está en memoria sino que la parte que "más se ejecuta" lo está.
Te copio unas líneas de mi ps para que te hagas a la idea de las aplicaciones que comen bastante memoria:

VSZ RSS TTY STAT START TIME COMMAND
314260 46048 tty7 SLs+ 14:23 6:28 _ /usr/bin/X :0
60628 34388 ? SL 14:24 1:49 | _ /usr/bin/compiz.real
49352 23500 ? S 14:24 0:01 _ gnome-panel
62172 27284 ? S 14:24 0:00 _ nautilus
63084 10392 ? Sl 14:24 0:00 _ /usr/lib/evolution/2.22/evolution-alarm-notify
246212 95100 ? Sl 14:24 5:46 /usr/lib/firefox-3.0b5/firefox http://gmail.google.com

Los tamaños son en KB (creo), así que por ejemplo:

  • El servidor X (el entorno gráfico) se come 314 MB, pero actualmente en memoria hay 46 MB.
  • Firefox se xome 246 MB pero en memoria hay 95 MB.

Espero que te haya quedado más o menos claro. :-)

Un saludo

trinytron

jeje gracias :)

Los programas ocupan 433 Mb. Lo restante es de cached (la primera linea del free -m) que no se que es :S.

Pero bueno ya me queda más claro :)

A

trinytron, si tienes esto:
$ free -m
total used free shared buffers cached
Mem: 2026 1527 498 0 174 939
-/+ buffers/cache: 414 1612

Olvida la linea buffers, que es información del Sistema operativo. La memoria que tienes "usada" es 1527. Es decir, 1,5 Gb y 500 Mb libres.

Dirás: Pero qué burrada, si no tengo nada abierto. Y luego dicen que Windows se "come" mucha memoria... xDDDDD

Bueno, sí y no. Linux utiliza algoritmos para mejorar el uso de memoria en cada momento. Eso significa que si tú tienes 2 Gb el sistema los intenta usar en toda su magnitud. Sería absurdo que intentase no utilizar más de 1 Giga por defecto, porque entonces ¿para qué quieres el segundo?

Según arranques más aplicaciones, lo que hará linux es "limitar" el espacio de las ya existentes y dejar en memoria aquellas partes que son usadas con mayor asiduidad. Por eso tienes 1,5Gb usados.

Realmente no te puedo dar datos de este comentario, pero por lo que recuerdo haber leído en varios libros creo que funciona así. :-)

Si no es así, punto en boca y a tirar palante. xDDD

Un saludo. :-)

trinytron

:O #7 thx ahora si que me lo has aclarado O_O Muchas gracias ! :D

¿Que libros son esos? Me gustaría profundizar sobre la matería :P.

A

Pues ahora mismo libros no me acuerdo. He ojeado varios sobre Linux (el kernel en sí, no sobre distribuciones).

Al igual, te digo que leerse un libro de Linux es un poco agobiante. ¿El motivo? Que muy probablemente lo que leas, a nivel de implementación, en un par de meses no sea tal y como lo has leído. Nosotros en la facultad, en Sistemas Operativos, estudiamos Minix por este motivo. Es un poco frustrante estudiar un planificador de tareas para ver que cada versión Linux implementa uno distinto... jejeje. Respecto a la gestión de memoria, más de lo mismo. Eso sí, Linux presume de tener una de las gestiones de memoria más eficaces existentes actualmente (aunque te coma giga y medio al arrancar xDDDD).

Por ejemplo, puedes leer los siguientes enlaces, que tienen información no muy detallada, pero sí te pueden hacer a la idea:

http://www.forosuse.org/forosuse/showthread.php?t=12137
Lee el apartado 4. POLÍTICAS DE GESTIÓN DE MEMORIA. Ahí mismo verás lo que te comenté: "Así, Linux utiliza ideas como "cargar todo lo que pueda hacer falta", para evitar transacciones con la memoria virtual. El tiempo que se ahorra se destina, fundamentalmente, en decidir qué es lo que se carga. "

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/MEMVIR02.htm#_GESTION_DE_MEMORIA_2
Lee el apartado de Linux, aunque si quieres léelo entero. :-)

Un saludo.

trinytron

Gracias #9! :D cuando acabe los exams ya tengo con que entretenerme jajajaja

Usuarios habituales