Re: tuning/tweaking VM settings for low memory (preventing OOM)

From: Nick Piggin
Date: Fri Jan 12 2007 - 23:55:00 EST


Kumar Gala wrote:
I'm working on an embedded PPC setup with 64M of memory and no swap. I'm trying to figure out how best to tune the VM for an OOM situation I'm running into.

I'm running a 2.6.16.35 kernel and have a bittorrent app that appears to be initializing a large file for it to download into. What I see before running the app:

/bigfoot/usb_disk # cat /proc/meminfo
MemTotal: 62520 kB
MemFree: 49192 kB
Buffers: 8240 kB
Cached: 740 kB
SwapCached: 0 kB
Active: 8196 kB
Inactive: 1236 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 62520 kB
LowFree: 49192 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
Mapped: 916 kB
Slab: 2224 kB
CommitLimit: 31260 kB
Committed_AS: 1704 kB
PageTables: 88 kB
VmallocTotal: 933872 kB
VmallocUsed: 9416 kB
VmallocChunk: 923628 kB

after the OOM:

/bigfoot/usb_disk # cat /proc/meminfo
MemTotal: 62520 kB
MemFree: 1608 kB
Buffers: 8212 kB
Cached: 42780 kB
SwapCached: 0 kB
Active: 6228 kB
Inactive: 45176 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 62520 kB
LowFree: 1608 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 35208 kB
Writeback: 5616 kB
Mapped: 892 kB
Slab: 7788 kB
CommitLimit: 31260 kB
Committed_AS: 1704 kB
PageTables: 88 kB
VmallocTotal: 933872 kB
VmallocUsed: 9416 kB
VmallocChunk: 923628 kB

Which makes me think that we aren't writing back fast enough. If I mount the drive "sync" the issue clearly goes away.

It appears from an strace we are doing ftruncate64(5, 178257920) when we OOM.

Any ideas on VM parameters to tweak so we throttle this from occurring?

You don't give us the actual OOM message. In newer kernels, there has been
quite a bit of work done to improve the OOM situation -- search changelogs
in mm/oom_kill.c mm/vmscan.c mm/page_alloc.c.

--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com -
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/