ok, i've recently started getting more involved with the linux side of the house and am finding that the linux VMM is not as well documented as some other OS's.. or maybe it is and I just haven't found a single solid source of information.. instead, i've found many different articles by many different people and a few seem to contradict eachother.
... anyways, can someone help me understand a few things here and/or correct my misconceptions.
first, assumption is that we're working with a RHEL4/RHEL5 server and nobody has been mucking with sysctl... and we're not virtualized.
so I have a typical question, application owner sees that his free list as reported by free/vmstat is dangerously low(to him) and i try to explain that typically linux and unix in general always like to make maximum use of memory and when not in use by applications the excess will be taken up by file caching/buffers to help speed up expensive IO operations, you're not paging out anything and basically nothing to worry about... ok, now to prove it.
in /proc/meminfo I see 6 values that peek my interest
MemTotal: 16384576 kB (16GB)
MemFree: 960332 kB (960MB)
Buffers: 376524 kB (370MB)
Cached: 14149840 kB (14GB)
Active: 10796856 kB (10GB)
Inactive: 4026432 kB (4GB)
memfree - pretty simple.
buffers - i assume this to be file caching, yes?
cached - this is where i get a little confused, what is cached? in this example its taking up most of my real memory and is the sum of active and inactive more or less.. is this coincidence?
active memory seems pretty straightforward, inactive by itself seems pretty straightforward but is there a link between inactive and cached? are inactive pages left out there indefinitely until either the kernel needs to allocate more pages for a process and they get flushed or a soft page fault flips the bit and brings them back to active?
in this example FYI, the system is not experiencing anything that indicates there is a memory bottleneck, no paging to swap space.. sar doesn't show any hard faults occuring etc etc... i'm just trying to accurately describe what the memory is being used for.
any good recommendations on solid documentation around kernel 2.6 VMM?
... anyways, can someone help me understand a few things here and/or correct my misconceptions.
first, assumption is that we're working with a RHEL4/RHEL5 server and nobody has been mucking with sysctl... and we're not virtualized.
so I have a typical question, application owner sees that his free list as reported by free/vmstat is dangerously low(to him) and i try to explain that typically linux and unix in general always like to make maximum use of memory and when not in use by applications the excess will be taken up by file caching/buffers to help speed up expensive IO operations, you're not paging out anything and basically nothing to worry about... ok, now to prove it.
in /proc/meminfo I see 6 values that peek my interest
MemTotal: 16384576 kB (16GB)
MemFree: 960332 kB (960MB)
Buffers: 376524 kB (370MB)
Cached: 14149840 kB (14GB)
Active: 10796856 kB (10GB)
Inactive: 4026432 kB (4GB)
memfree - pretty simple.
buffers - i assume this to be file caching, yes?
cached - this is where i get a little confused, what is cached? in this example its taking up most of my real memory and is the sum of active and inactive more or less.. is this coincidence?
active memory seems pretty straightforward, inactive by itself seems pretty straightforward but is there a link between inactive and cached? are inactive pages left out there indefinitely until either the kernel needs to allocate more pages for a process and they get flushed or a soft page fault flips the bit and brings them back to active?
in this example FYI, the system is not experiencing anything that indicates there is a memory bottleneck, no paging to swap space.. sar doesn't show any hard faults occuring etc etc... i'm just trying to accurately describe what the memory is being used for.
any good recommendations on solid documentation around kernel 2.6 VMM?