[gull] Re: [gull] Gestion mémoire sous linux
Marc Mongenet
Marc.Mongenet at freesurf.ch
Sat Sep 6 17:31:02 CEST 2003
Escario Julien wrote:
> Chez moi, après un boot (2.4.18 aussi :-():
> MemTotal: 124496 kB
> MemFree: 100128 kB
> MemShared: 0 kB
> Buffers: 1768 kB
> Cached: 12736 kB
> SwapCached: 0 kB
> Active: 4860 kB
> Inactive: 16296 kB
> HighTotal: 0 kB
> HighFree: 0 kB
> LowTotal: 124496 kB
> LowFree: 100128 kB
> SwapTotal: 266072 kB
> SwapFree: 266072 kB
Et voici ce que ça signifie :
MemTotal: Total usable ram (i.e. physical ram minus a few reserved
bits and the kernel binary code)
MemFree: The sum of LowFree+HighFree
Buffers: Relatively temporary storage for raw disk blocks
shouldn't get tremendously large (20MB or so)
Cached: in-memory cache for files read from the disk (the
pagecache). Doesn't include SwapCached
SwapCached: Memory that once was swapped out, is swapped back in but
still also is in the swapfile (if memory is needed it
doesn't need to be swapped out AGAIN because it is already
in the swapfile. This saves I/O)
Active: Memory that has been used more recently and usually not
reclaimed unless absolutely necessary.
Inactive: Memory which has been less recently used. It is more
eligible to be reclaimed for other purposes
HighTotal:
HighFree: Highmem is all memory above ~860MB of physical memory
Highmem areas are for use by userspace programs, or
for the pagecache. The kernel must use tricks to access
this memory, making it slower to access than lowmem.
LowTotal:
LowFree: Lowmem is memory which can be used for everything that
highmem can be used for, but it is also availble for the
kernel's use for its own data structures. Among many
other things, it is where everything from the Slab is
allocated. Bad things happen when you're out of lowmem.
SwapTotal: total amount of swap space available
SwapFree: Memory which has been evicted from RAM, and is temporarily
on the disk
NB:
- MemShared est obsolète.
- La division en mémoire basse et haute est due à une limitation
de l'architecture des PC. L'auteur de la doc n'est pas très
précis quand il écrit que la mémoire est plus lente d'accès.
Sauf erreur, le problème est qu'elle n'est pas adressable par
les périphériques, donc si des données arrivent d'un contrôleur
disque/réseau/autre, elles doivent d'abord être écrite en mémoire
basse avant d'être copiée par le CPU en haut. On appelle bounce
buffer la mémoire basse utilisée pour cela.
Toujours sur x86, il existe un moyen d'adresser plus de 4 Go
de mémoire physique, mais là il s'agit vraiment d'une horreur
digne du temps du 8086 (où il s'agissait d'adresser plus de
64 Ko). Je ne sais pas comment Linux rapporte la quantité de
cette mémoire.
> Un sync n'y change rien :-(
sync écrit sur disque ce qui a changé en cache, mais ne vide
pas pour autant les caches.
> Peut-être qu'en mettant l'option sync dans le fstab ...
Il y aura toujours des caches, pour la lecture.
En revanche l'écriture sur disque sera immédiate.
> Personnellement, je ne vois pas ça comme un bug ni un problème , je
> voulais juste savoir si vous aviez constater la même chose. Visiblement
> pas pour tout le monde ...
AMHA tout le monde doit constater cela, quel que soit l'OS,
sauf à remonter dans les années 1980.
Marc Mongenet
More information about the gull
mailing list