Loading ...
Sorry, an error occurred while loading the content.

OOM killer blues

Expand Messages
  • docbillnet
    For awhile, I have been having problems that processes spontaneously terminate with a Killed signal on my NSLU2 with Debian arm. After playing around with
    Message 1 of 1 , Dec 15, 2008
    • 0 Attachment
      For awhile, I have been having problems that processes spontaneously
      terminate with a "Killed" signal on my NSLU2 with Debian arm. After
      playing around with kernel options, I found if I set the out of memory
      behaviour to Panic instead, then my NSLU2 spontaneously freezes
      instead. So this is definitely caused by the OOM killer.

      The most consistent way I can make this happen is to use LVM commands
      on my 2.5 TiB volume group. For example, even "vgchange -a y
      /dev/media" will terminate with a "Killed", and not activate all the
      logical volumes in the group.

      Now the problem is I have tried configuring as much as 4GB of swap,
      but the problem remains. I've monitored the memory when it happens,
      and typically I am using somewhere between 100 MB to 250 MB. I have
      moved my swap partitions to different discs, but still it happens.

      The problem is bad enough, that I can't even boot my NSLU2 if I have
      the disks with my lvm volumes plugged in, because the 'vgchange -a y'
      ends up killing the init.

      I've managed to overcome the last problem, by patching
      /etc/init.d/lvm, but I am still looking for a solution to the OOM
      killer problem.

      Any tips would be appreciated.

      Bill


      --- /etc/init.d/lvm.orig 2008-12-15 10:23:56.000000000 -0500
      +++ /etc/init.d/lvm 2008-12-15 10:24:42.000000000 -0500
      @@ -45,7 +45,10 @@
      MKNODES=""
      test `/sbin/lvmiopversion` -ge "200" && test -x
      /lib/lvm-200/lvm && IGNORELOCKINGFAILURES="--ignorelockingfailure" &&
      MKNODES="--mknodes"
      /sbin/vgscan $IGNORELOCKINGFAILURES $MKNODES || true
      - /sbin/vgchange -a y $IGNORELOCKINGFAILURES
      + for VOLUME in $(lvscan $IGNORELOCKINGFAILURES |sed -n
      -e 's,.*inactive.*'"'"'\(.*\)'"'"'.*,\1,p')
      + do
      + lvchange -a y $IGNORELOCKINGFAILURES "$VOLUME"
      + done
      # Set permissions from /etc/default/lvm-common
      for MODEVAR in ${!MODE_*}; do
      eval MODE=\$$MODEVAR
    Your message has been successfully submitted and would be delivered to recipients shortly.