I am running the latest FC5-i686-smp kernel, 2.6.20, on a machine with
8Gb of RAM, and 2 Xeon processors. The system has a 750Mb ramdisk,
and one process allocating and deallocating memory that is also
writing lots of files to the ramdisk. The process also reads and
writes from the network. After the process runs for a while, the
linux OOM killer starts killing processes, even though there is lots
of memory available.
The system does not ordinarily use swap space, but I've added swap to
see if it makes a difference, but it only defers the problem.
The OOM dump below shows that memory in the NORMAL_ZONE is exhausted,
but there is still plenty of memory (6Gb+) in the HighMem Zone. I can
provide .config and dmesg data if these would be helpful.
Why is the OOM killer being invoked when there is still memory
available for use?
java invoked oom-killer: gfp_mask=0xd0, order=0, oomkilladj=0
java invoked oom-killer: gfp_mask=0xd0, order=0, oomkilladj=0
[<c0455f84>] out_of_memory+0x69/0x191
[<c0457460>] __alloc_pages+0x220/0x2aa
[<c046c80a>] cache_alloc_refill+0x26f/0x468
[<c046ca76>] __kmalloc+0x73/0x7d
[<c05bb4ce>] __alloc_skb+0x49/0xf7
[<c05e483d>] tcp_sendmsg+0x169/0xa04
[<c05fd76d>] inet_sendmsg+0x3b/0x45
[<c05b57d5>] sock_aio_write+0xf9/0x105
[<c0455708>] generic_file_aio_read+0x173/0x1a3
[<c046fd11>] do_sync_write+0xc7/0x10a
[<c04379fd>] autoremove_wake_function+0x0/0x35
[<c05e413e>] tcp_ioctl+0x10a/0x115
[<c05e4034>] tcp_ioctl+0x0/0x115
[<c05fd406>] inet_ioctl+0x8d/0x91
[<c0470564>] vfs_write+0xbc/0x154
[<c0470b62>] sys_write+0x41/0x67
[<c0403ef6>] sysenter_past_esp+0x5f/0x85
=======================
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
CPU 1: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
CPU 2: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
CPU 3: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Normal per-cpu:
CPU 0: Hot: hi: 186, btch: 31 usd: 84 Cold: hi: 62, btch: 15 usd: 53
CPU 1: Hot: hi: 186, btch: 31 usd: 66 Cold: hi: 62, btch: 15 usd: 57
CPU 2: Hot: hi: 186, btch: 31 usd: 59 Cold: hi: 62, btch: 15 usd: 51
CPU 3: Hot: hi: 186, btch: 31 usd: 60 Cold: hi: 62, btch: 15 usd: 58
HighMem per-cpu:
CPU 0: Hot: hi: 186, btch: 31 usd: 65 Cold: hi: 62, btch: 15 usd: 1
CPU 1: Hot: hi: 186, btch: 31 usd: 172 Cold: hi: 62, btch: 15 usd: 5
CPU 2: Hot: hi: 186, btch: 31 usd: 12 Cold: hi: 62, btch: 15 usd: 4
CPU 3: Hot: hi: 186, btch: 31 usd: 9 Cold: hi: 62, btch: 15 usd: 3
Active:313398 inactive:141504 dirty:0 writeback:0 unstable:0 free:1592770 slab:20743 mapped:7015 pagetables:819
DMA free:3536kB min:68kB low:84kB high:100kB active:3496kB inactive:3088kB present:16224kB pages_scanned:24701 all_unreclaimable? yes
lowmem_reserve[]: 0 871 8603
Normal free:1784kB min:3740kB low:4672kB high:5608kB active:324892kB inactive:394008kB present:892320kB pages_scanned:1419914 all_unreclaimable? yes
lowmem_reserve[]: 0 0 61854
HighMem free:6365760kB min:512kB low:8816kB high:17120kB active:925204kB inactive:168920kB present:7917312kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
DMA: 0*4kB 0*8kB 1*16kB 2*32kB 0*64kB 1*128kB 1*256kB 0*512kB 1*1024kB 1*2048kB 0*4096kB = 3536kB
Normal: 0*4kB 1*8kB 1*16kB 9*32kB 1*64kB 1*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1784kB
HighMem: 1438*4kB 599*8kB 191*16kB 49*32kB 0*64kB 0*128kB 79*256kB 48*512kB 10*1024kB 8*2048kB 1533*4096kB = 6365760kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 9775512kB
Total swap = 9775512kB
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]