SAMBA uso de memoria

Juan Martínez jeugenio en umcervantes.cl
Mar Feb 28 19:07:34 CLST 2006


El mar, 28-02-2006 a las 13:00 -0600, Dimas Ayala escribió:
> Para verificar el uso de memoria uso el free -m y me refiero a los
> datos mostrados en la primera linea la de mem
>                     Total              used                 free
> mem:             741                725                  16 
> +/- buffers/cache:                  325               416 
> Swap:           996                    0                      996

Pero tienes 416MB libres!
En cache, pero libres al fin y al cabo. Fijate en un detalle, a pesar de
que según tú está toda la memoria ocupada, no se ha ocupado para nada la
swap, eso habla de que no se ha necesitado, por qué?

Que el núcleo (y/o procesos varios) se use toda la memoria, no es signo
de que algo anda mal. Linux, se caracteriza en que si ve que queda
memoria disponible, comienza a cargar todo aquello que en el futuro le
pueda ser útil.

Si el nucleo (y/o procesos varios) usen toda la memoria, además toda la
virtual (Swap), ademas el uso de cpu es cercano a 100%, y w dice cosas
como 30.0 30.0 30.0, recien es para preocuparse por un rootkit o algo
por el estilo.

Esos datos que te entrega free no les veo nada de raro.

> La memoria se incrementa cuando transfieres archivos. Si estas
> ejecutando un free -m observas como se esta realizando el incremento
> del mem: Por otra parte una vez la memoria se agota libera 80MG y
> continua llenadola y asi esta con ese ciclo. 

Problamente eso este sujeto a algún parametro de samba, en donde tenga
un límite de su buffer o cache.

Los procesos cuando se ejecutan, el nucleo le va asignando una
determinada cantidad de memoria dependiendo de su prioridad (la del
proceso) y de la misma demanda que este tenga. Cuando el proceso deja de
ocupar esa memoria, se la tiene que entregar al nucleo nuevamente, o
bien avisarle al nucleo que el rango 4c6d:ff4d (es solo un ejemplo) está
desocupado. Si el proceso no lo hace, el nucleo asume que sigue ocupada.
Ahora el proceso puede decir que no esta ocupada, pero que no la libere
(liberar= dejarla disponible para el nucleo para que este haga lo que
estime conveniente con ella, p.e. darsela a otro proceso), y eso es
cache. 

Este simple procedimiento hace la diferencia entre linux y windows. El
administrador de memoria de windows a veces es un poco dictatorial y
ocupa rangos de memoria que le habia entregado a un proceso determinado,
para darsela a otro proceso, resultado, cuando el primer proceso que
sabia que tenia un rango X, va a buscar cosas de el, y paff...se
encuentra que no esta lo que buscaba. Consecuencia? sindrome de Blue
Screen...

ACLARATORIA: cuando hablo de que el nucleo le asigna memoria a un
proceso, lease, que lo hace en realidad el administrador de memoria
(VMM).

Atte.
Juan Martínez
Depto. Inf.
UMC



Más información sobre la lista de distribución Linux