The amount of RAM set aside by min_free_kbytes cannot be used for processes, cache or buffers. It's "reserved" for use by new processes that are starting up. By reserving it, you're effectively setting it aside so the system can't use it. So, if you had a system with 1GB of RAM and you set min_free_kbytes to 750MB, the system would behave as though it had only 250MB to work with.
The simplest way is to boot the system, let it run with the application started but with no real load. Use "free" to see how much memory the system is currently using, not including cache and buffers.
For example, here is a system with 2GB of RAM. It happens to be a Fedora 16 VM, but the virtual memory model is the same:
So, it's currently using about 516MB for processes and has about 1.5GB unused. There is no active paging activity. The min_free_bytes parameter is set to about 45MB. If we increase min_free_kbytes to 1500000 (1.5GB), then the system is forced to reserve that 1.5GB for new processes and acts as though it only has 500MB of RAM. If we start to stress the system, it can't use the 1.5GB you've told it to reserve, so it has no choice but to start actively paging to the swap area to find the memory to continue to run.
Using this method, you can put any system into a condition where it thinks it's almost out of memory and needs to start paging.
If you reserve so much memory that the system doesn't have enough to run, it will start paging immediately without any load. Here's what happens if we reserve 1.7GB:
I pushed this system to use 256MB of the swap space. It immediately started actively paging and performance is horrible. Very slow response to commands. You can see the active paging activity:
If we return min_free_bytes to it's inital value, the system quickly returns to normal:
Notice that the last free command shows 375MB of the swap area still used, which is OK, since it's static usage. The system will go get those pages out of swap if and when it needs them. The important point is that there isn't any active paging going on anymore.
;) Hi friends,
any one please help me.
I want to store some job names into an array and also I want extract these names on different timings for scheduling.
Please give me some idea.
your's loving
LOVE :p (1 Reply)
Hey all,
I have been thinking about getting a new computer, and the motherboard I am looking at is capable of holding up to 8 Gb of ram. Now it appears as though for 32 bit linux, in order to use more than 4 Gb of ram, you had to enable a certain option in the kernel, but if I remember... (2 Replies)
Hi ,
I Want to apply AIX lint to my source code which all are *.cpp/*.h
>lint test.cpp
lint: 1286-332 File test.cpp must have a .c, .C or .ln extension. It is ignored.
lint: 1286-334 There are no files to process.
I am getting above error.
-Ashok (3 Replies)
I have the processes (100+) by the oracle id and I'd to get the summarized view of the oracle processes' usage of the memory and the cpu.
top would give me some, but not all.
Thanks (3 Replies)
Hi all, I'm using to Solaris machine. When I run a simple script this messenger come out:"limit: stacksize: Can't remove limit". Any one know the way to resolve this problem without reboot the machine?
Thanks in advance. (3 Replies)
Hi,
I have a server (BL460c) with 32G of physical RAM.
It currently only uses approx 5% its capacity but will use more (not sure how much more) pending the launch of further applications.
If I need to build another node of similar functionality should I consider downgrading the physical... (2 Replies)
We have a system with 4 Xeon Processors each with 10 cores, total 512 GB RAM and 10 TB Hard Drive.
we want to create multiple user accounts with different resource limitations as :
User 1: RAM : 50GB, PROCESSOR: 10 Cores , User folder in home directory of 10GB space.
User 2: RAM :... (5 Replies)