Re: Tamaño de swap
> Tengo entendido que la swap sirve para tener una memoria virtual, y que
> los procesos puedan tener un espacio de direcciones mayor (superior
> incluso a la memoria fisica). Entonces, ¿poner el triple de swap es
> mejor que poner el doble?
La razón de la swap no es aumentar el espacio de direcciones, pues eso es algo
que depende del procesador (en el caso de los Intel IA-32, por ejemplo, al
ser de 32 bits están limitados a 4 GB de memoria direccionable). La swap,
como memoria virtual que es, sirve para poder tener ejecutándose
simultáneamente más procesos de los que cabrían en la memoria física del
ordenador. Los procesos que no se usan en un momento dado se pueden volcar
total o parcialmente al soporte de la memoria de intercambio (swap), para
dejar espacio libre para otras tareas. La administración de memoria en los
equipos actuales es más compleja de lo que parece, normalmente mediante una
combinación de segmentación y paginación.
Ten en cuenta que la memoria también se usa como caché y como buffer. El caché
se usa cuando se leen archivos, y tras leerlos se mantienen en memoria. Si se
necesita volver a utilizar esa información, no hace falta volver a buscarla
en disco (que es una operación increíblemente lenta para la velocidad interna
de un procesador) sino que puede usarse la información de esa caché en la
memoria física, acelerando mucho el rendimiento.
Yo tengo 512 megas de RAM, y nunca se me ocupa entera (sin contar el caché y
los buffers, es decir, mirando la línea "+/- buffers/cache" del comando
"free"). Tengo un núcleo 2.6, y pongo la swappiness del kernel a 100, para
que use cuando pueda la memoria de intercambio (esto se puede hacer con "echo
100 > /proc/sys/vm/swappiness"). El sistema ahora mismo, tras unas 3 horas de
uso, un par de juegos, un Mozilla con 20 tabs abiertas, un Kmail, el Knode,
el XMMS y algunas aplicaciones chorras:
haplo@elfstar:/etc/init.d$ free
total used free shared buffers cached
Mem: 516860 498944 17916 0 17060 217208
-/+ buffers/cache: 264676 252184
Swap: 497972 432 497540
Personalmente creo que le debería haber puesto 256 megas de swap, porque no
creo que llegue a usar nunca más. Pero en mi caso yo no le pongo 1 giga (el
doble de mi RAM) ni borracho. :-P
> Y si me quedo corto, ¿qué problemas podría tener el sistema?
Si te pones a arrancar más y más procesos, estos necesitan memoria. Si alguna
vez llega un proceso, pide memoria pero no hay disponible (y no se puede
liberar memoria física volcando otros procesos a la swap), en principio
terminaría con un "segmentation fault", indicando que no hay memoria para que
se ejecute ese proceso.
Si me aburro a ver si hago un programita que haga infinitas copias de sí mismo
hasta que pete la memoria, a ver qué hace el sistema en ese caso. No sería
nada difícil. Ummmmmmmmm...
Haplo
Reply to: