On this machine (RH9, kernel 2.4.20-18.9) the docs say (in
/usr/src/linux-2.4/Documentation/vm/overcommit-accounting ):
-----------------
The Linux kernel supports four overcommit handling modes
0 - Heuristic overcommit handling. Obvious overcommits of
address space are refused. Used for a typical system. It
ensures a seriously wild allocation fails while allowing
overcommit to reduce swap usage
1 - No overcommit handling. Appropriate for some scientific
applications
2 - (NEW) strict overcommit. The total address space commit
for the system is not permitted to exceed swap + half ram.
In almost all situations this means a process will not be
killed while accessing pages but only by malloc failures
that are reported back by the kernel mmap/brk code.
3 - (NEW) paranoid overcommit The total address space commit
for the system is not permitted to exceed swap. The machine
will never kill a process accessing pages it has mapped
except due to a bug (ie report it!)
----------------------
So maybe
sysctl -w vm.overcommit_memory=3
is what's needed? I guess you might pay a performance hit for doing that,
though.
andrew
> > Yeah, I see it in the Mandrake kernel. But it's not in stock 2.4.19,
> > so you can't assume everybody has it.
> >
>
> We had this problem on a recent version of good old Slackware.
> I think we also had it on RedHat 8 or so.
>
> Doing this kind of killing is definitely a bad habit. I thought it had
> it had to do with something else so my proposal for pre-allocation
> seems to be pretty obsolete ;).
>
> Thanks a lot.
>
> Hans
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster