Quello che stai vedendo è normale e il comportamento desiderato.
OS X, come Linux e BSD, ha una cache del disco. Ciò significa che qualsiasi cosa letta da o scritta sul disco viene mantenuta in memoria. La memoria "Inattiva" include questa cache del disco.
Questa risposta su AskDifferent lo spiega, così come questo post su macosxhints.com :
However, X's underpinnings (ie the UN*X kernel) provide both these
features without any inputs being needed by the user. It's called the
file system buffer cache. The one most significant difference is that
the size of this buffer cache is dynamic. It starts of with some small
size and can grow and shrink as the i/o demands and Apps memory
requirements vary over time.
It's called a 'buffer cache' because it buffers the i/o data on its
way to/from the disk. When an App writes data it first will be
deposited into the Apps file buffer memory region and will
subsequently be requested via library routines to have the kernel (the
OS) copy it from the App's buffer to disk. The kernel will oblige and
will copy it first to its buffer -- the file system buffer cache. If
the kernel requires more room in its buffer cache it will obtain it
from the free memory. When this happens the free memory value, in say
the Terminal's top command, will immediately show a reduction of free
memory. At some later point the kernel will copy this data (referred
to has dirty buffers) to the appropriate disk location. I believe the
frequency of this being done is 30 secs -- called sync-ing to disk.
Tieni presente che la presenza di una memoria di paging sul disco non è sempre una cosa negativa . Se le pagine di memoria sono completamente inattive, la loro impaginazione sul disco può migliorare le prestazioni , perché sprecano RAM che potrebbe essere altrimenti utilizzata per la cache del disco. Una volta che si effettua il paging out e si interrompe la visione di film, quando necessario viene richiamato nuovamente, sostituendo automaticamente i buffer e la cache del disco. Non è necessario eseguire purge
ogni volta. Lascia che OS X gestisca la cache del disco come è stato progettato per farlo.
Per ulteriori informazioni su questo, consulta l'articolo di wikipedia sul paging e l'articolo sulla cache della pagina .
TL; Informazioni DR:
Ecco un articolo che descrive come funziona lo swap sotto Linux . Mentre non è applicabile al 100% a OS X, il concetto è lo stesso. Citerò la parte pertinente:
When an application needs memory and all the RAM is fully occupied,
the kernel has two ways to free some memory at its disposal: it can
either reduce the disk cache in the RAM by eliminating the oldest data
or it may swap some less used portions (pages) of programs out to the
swap partition on disk. It is not easy to predict which method would
be more efficient. The kernel makes a choice by roughly guessing the
effectiveness of the two methods at a given instant, based on the
recent history of activity
Poiché stai guardando un DVD o un film, le ultime pagine di memoria attive sono la cache del disco, quindi OS X decide di tenerlo nella RAM e di scambiare le pagine di memoria che erano rimaste inattive prima di iniziare ad accedere i file video. Una volta che si interrompe l'accesso ai file video e si accede ai programmi usando le pagine di memoria che sono state scambiate, è vero il contrario: OS X eliminerà la cache del disco contenente i dati video e la sostituirà con le pagine di memoria che ha scambiato. Quindi l'utilizzo dello swap diminuirà.
Ecco un po 'più di informazioni , specifiche per FreeBSD (che è simile a Mac OS X):
FreeBSD will use 'all of memory' for the disk cache. What this means
is that the 'free' bucket typically contains only a few pages in it.
If the system runs out, it can free up more pages from the cache
bucket.
System activity works like this: When a program actively references a
page in a file on the disk (etc...) the page is brought into the
buffer cache via a physical I/O operation. It typically goes into the
'active' bucket. If a program stops referencing the page, the page
slowly migrates down into the inactive or cache buckets (depending on
whether it is dirty or not). Dirty pages are slowly 'cleaned' by
writing them to their backing store and moved from inactive to cache,
and cache pages are freed as necessary to maintain a minimum number of
truely free pages in the free bucket. These pages can still be
'cleaned' by allocating swap as their backing store, allowing them to
migrate through the buckets and eventually be reused.
[...]
The VM buffer cache caches everything the underlying storage so, for
example, it will not only cache the data blocks associated with a file
but it will cache the inode blocks and bitmap blocks as well. Most
filesystem operations thus go very fast even for tripple-indirect
block lookups and such
[...]
FreeBSD has arguably some of the best swap code in existance. I
personally like it better then Linux's. Linux is lighter on swap, but
doesn't balance system memory resource utilization well under varying
load conditions. FreeBSD does.
FreeBSD notes the uselessness of existing pages in memory, and decides
that it might be advantageous to free memory (enabled by pushing pages
to swap), so that it can be used for more active purposes (such as
file buffering, or more program space.) It is a terrible waste to
keep unused pages around, for the notion of saving (cheap) disk
space. Since low level SWAP I/O can be faster, with less CPU overhead
than file I/O, it is likely desireable to push such unused pages out
so that they can be freed for use by higher overhead mechanisms.
(note 1)
(Enfasi mia, controlla quella parte in grassetto per ciò che stai chiedendo specificatamente, ovvero "Perché lo swap viene usato quando ho memoria inattiva?)