I hit this again today after a bug in an R program and got motivated to
make a smaller test case.

Attached is a program that tries to allocate 10GB of memory by:

1 - Allocating it in MB chunks and *not* writing to them
2 - Allocating it in MB chunks and memset'ing them to 0
3 - Allocating it in kB chunks and *not* writing to them

 I ran this on a system with 3GB of memory and no swap. The result was
that 2 and 3 eventually slowed the system down to a crawl making it very
hard to even cancel the command on the terminal. Eventually the OOM
killer kicked in and killed it and the system went back to normal, but
not without first killing some other things. Curiously #1 worked fine.
glibc is probably doing something funny behind my back as available
memory does not go down when that runs.

I'm not sure this is actually reproducing the problem I am reporting.
The behavior seems almost normal with processes getting killed by the
OOM and the system going back to normal. It was very unresponsive in the
process which is my real problem. It's fine that some program slows to a
crawl if it tries to get too much memory but it should impact everything
else quite so much. Otherwise it's impossible to kill it and the system
is effectively stalled.

Would the newer cgroup stuff help with this? Does it also throttle IO?

Would the R program that was causing the problem be a better example?
It's a pretty short program but it wouldn't be a short test-case as it
brings in all of R.

** Attachment added: "Simple test case"
   
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/750133/+attachment/2117308/+files/test.c

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/750133

Title:
  The system becomes unresponsive under memory pressure even without
  swap

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to