Quote:
Originally Posted by
Phat
I would like to understand better in AIX memory use
Basically you have three types of memory in an AIX system: "used" and "unused" and the "used" category divides into two parts: "computational" and "file" memory.
"unused" is memory the kernel has absolutely no use for. In a longer running (and correctly tuned) system this is near to zero.
"computational" memory is the memory used by loaded and running programs.
"file" memory is basically cache. All the memory not used for programs (but not strictly set aside by tuning provisions) is added to the file cache - over time. The kernel will only make use of memory to cache file access if it has an idea what to cache. This is why freshly started systems have lots of free memory. The kernel simply doesn't know what to put into the cache and therefore doesn't allocate a lot of it.
Should RAM become used over time and more computational memory is needed (i.e. more programs are started) the file cache is diminished accordingly or regrown again should memory become free again. The tuning parameters "numperm", "minperm", "maxperm", "minclient" and "maxclient" deal with how and when exactly file memory is turned into computational memory and vice versa. There is a daemon - the "least recently used daemon" or "lrud" for short - which constantly scans memory pages and decides when they should be claimed as "computational" or "file". What it is doing exactly shows in the output of
vmstat -vs, i.e. "revolutions of the clock hand" means: since the last start the lrud has scanned the whole memory that often completely. If this value is fast growing you know that even if memory is not scarce right now it is at the brink of being exhausted and paging will start soon if any more memory is needed.
You may want to consult my "Most Incomplete Guide to Performance Tuning" for a more thorough (though not complete - this is a complex area) discussion about memory management in UNIX systems in general and how to assess it.
I hope this helps.
bakunin