Messages in this thread | | | Date | Tue, 13 Jan 2009 17:45:54 -0800 | Subject | Re: [RFC][PATCH 1/4] Memory controller soft limit documentation | From | Paul Menage <> |
| |
On Wed, Jan 7, 2009 at 10:41 AM, Balbir Singh <balbir@linux.vnet.ibm.com> wrote: > -7. TODO > +7. Soft limits > + > +Soft limits allow for greater sharing of memory. The idea behind soft limits > +is to allow control groups to use as much of the memory as needed, provided > + > +a. There is no memory contention > +b. They do not exceed their hard limit > + > +When the system detects memory contention (through do_try_to_free_pages(), > +while allocating), control groups are pushed back to their soft limits if > +possible. If the soft limit of each control group is very high, they are > +pushed back as much as possible to make sure that one control group does not > +starve the others.
Can you give an example here of how to implement the following setup:
- we have a high-priority latency-sensitive server job A and a bunch of low-priority batch jobs B, C and D
- each job *may* need up to 2GB of memory, but generally each tends to use <1GB of memory
- we want to run all four jobs on a 4GB machine
- we don't want A to ever have to wait for memory to be reclaimed (as it's serving latency-sensitive queries), so the kernel should be squashing B/C/D down *before* memory actually runs out.
Is this possible with the proposed hard/soft limit setup? Or do we need some additional support for keeping a pool of pre-reserved free memory available?
Paul
| |