From: James Dingwall <james.dingwall@zynstra.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Kernel 3.11 / 3.12 OOM killer and Xen ballooning
Date: Tue, 10 Dec 2013 14:01:57 +0000 [thread overview]
Message-ID: <52A71ED5.5080709@zynstra.com> (raw)
In-Reply-To: <52A6DBEF020000780010BAC9@nat28.tlf.novell.com>
Jan Beulich wrote:
>>>> On 09.12.13 at 18:50, James Dingwall <james.dingwall@zynstra.com> wrote:
>> Since 3.11 I have noticed that the OOM killer quite frequently triggers
>> in my Xen guest domains which use ballooning to increase/decrease their
>> memory allocation according to their requirements. One example domain I
>> have has a maximum memory setting of ~1.5Gb but it usually idles at
>> ~300Mb, it is also configured with 2Gb swap which is almost 100% free.
>>
>> # free
>> total used free shared buffers cached
>> Mem: 272080 248108 23972 0 1448 63064
>> -/+ buffers/cache: 183596 88484
>> Swap: 2097148 8 2097140
>>
>> There is plenty of available free memory in the hypervisor to balloon to
>> the maximum size:
>> # xl info | grep free_mem
>> free_memory : 14923
> But you don't tell us how you trigger the process of re-filling
> memory. Yet that's the crucial point here; the fact that there is
> enough memory available in the hypervisor is only a necessary
> prerequisite.
My guest systems are Gentoo based and most often the problems happen
while running emerge (Python script). The example trace was taken from
an emerge command launched via a cron script which runs emerge --sync ;
emerge --deep --newuse -p -u world. Almost all the other times I have
seen the behaviour have been during emerge --deep --newuse -u world
runs, most often during the build of large packages such as kdelibs,
seamonkey or libreoffice. However occasionally I have seen it with
smaller builds or during the package merge phase where files are indexed
and copied in to the live filesystem.
I have done some testing with the program below which successfully fills
all memory and swap before being killed. One thought I had was that
perhaps there was some issue around a balloon down/up when the rate at
which memory is being requested and released is high. I will try
another program with a random pattern of malloc/free to see if I can
make a test case to help with a bisect.
Thanks,
James
#include <stdlib.h>
extern
int main(int argc, char *argv[])
{
int leak_size = 1024 * 1024;
while(1) {
malloc(leak_size);
}
return(0);
}
This is the output of vmstat 1 leading up to a kill of g++:
procs -----------memory---------- ---swap-- -----io---- -system--
----cpu----
r b swpd free buff cache si so bi bo in cs us sy
id wa
2 0 836 42564 72 35912 0 0 56 0 14049 13585 17
46 35 2
2 0 836 42564 72 35916 0 0 56 0 14214 13747 17
46 34 2
2 0 836 42616 72 35840 0 0 112 0 14007 13564 17
46 36 2
2 0 836 42428 72 36024 0 0 236 0 12453 12025 15
42 37 6
2 0 796 41672 72 36104 0 0 44 8 14709 14243 18
48 34 0
2 0 796 41932 72 36288 0 0 148 0 13987 13484 17
45 36 2
2 0 796 42020 72 36196 0 0 60 0 13749 13288 17
45 35 2
3 0 796 41924 72 36284 0 0 72 0 14390 13868 17
47 34 2
2 0 796 42168 72 36032 0 0 40 0 11211 10819 14
37 37 12
2 0 760 41460 72 36116 0 0 108 8 14427 13946 18
48 34 1
2 0 760 35900 72 41600 0 0 108 0 13773 13362 18
48 32 2
2 0 760 35940 72 41576 0 0 56 0 14452 13978 18
47 34 1
2 0 760 35956 72 41540 0 0 88 0 14415 13975 17
48 34 1
2 0 760 35824 72 41648 0 0 104 0 14370 13925 17
46 35 2
3 0 724 35112 72 41776 0 0 96 1480 14271 13794 17
46 35 2
2 0 724 35012 72 41908 0 0 104 0 14457 13972 17
47 34 1
2 0 724 34884 72 42004 0 0 184 0 13801 13347 17
45 37 2
2 0 724 34888 72 42012 0 0 72 19 14590 14150 17
48 34 1
2 0 724 34720 72 42100 0 0 152 26 10802 10579 13
35 38 13
2 0 692 34044 72 42140 0 0 20 17 14573 14097 18
47 34 1
3 0 692 34116 72 42072 0 0 20 0 14542 14052 17
47 35 1
0 0 692 38540 72 42400 0 0 220 0 11981 11613 16
42 42 1
0 1 692 32224 72 43252 0 0 1460 0 4313 4377 13 13
61 13
5 0 692 31380 72 45084 0 0 1816 0 3241 3403 3 8
28 61
3 0 660 29552 72 47012 0 0 1060 14 14843 15905 22
49 14 15
2 0 660 17460 72 55592 0 0 7856 71 14869 16513 23
51 15 12
1 1 660 16732 72 56520 0 0 892 88 10888 17232 36
53 6 6
3 0 660 16964 72 57788 0 0 640 0 15741 18390 26
57 11 6
2 1 660 14448 72 60112 0 0 1556 40 14830 16736 22
50 15 13
3 0 628 10300 72 62424 0 0 996 0 15679 17393 24
54 12 11
3 0 628 9412 72 64216 0 0 504 0 17873 19182 27
60 9 4
3 0 628 7724 72 65480 0 0 332 0 16445 18588 25
57 11 8
1 1 628 12284 72 61088 0 0 212 5144 15099 17314 30
62 5 3
2 0 628 17264 72 53488 0 0 60 0 11906 17634 40
53 2 5
3 0 600 17440 72 53996 0 0 388 34 17648 20469 27
63 6 5
2 0 600 16684 72 54224 0 0 456 182 17288 20085 27
62 8 3
3 0 600 15112 72 56100 0 0 792 8 15689 17476 24
55 11 10
3 0 600 11752 72 58464 0 0 772 0 18287 20021 27
62 7 5
0 2 600 8628 72 60744 0 0 1536 0 15871 18785 24
56 12 8
3 0 568 8120 72 61820 0 0 820 38 10480 12030 17
35 37 11
2 0 568 4548 72 49460 0 0 5408 3156 7301 7390 7 27
60 6
1 0 6792 4592 72 41252 0 0 3172 0 6733 6601 12 38
35 16
1 0 1212 135860 72 41972 0 0 3192 136 5099 5011 10 34
31 25
next prev parent reply other threads:[~2013-12-10 14:02 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-09 17:50 Kernel 3.11 / 3.12 OOM killer and Xen ballooning James Dingwall
2013-12-09 21:48 ` Konrad Rzeszutek Wilk
2013-12-10 14:52 ` James Dingwall
2013-12-10 15:27 ` Konrad Rzeszutek Wilk
2013-12-11 7:22 ` Bob Liu
2013-12-11 9:25 ` James Dingwall
2013-12-11 9:54 ` Bob Liu
2013-12-11 10:16 ` James Dingwall
2013-12-11 16:30 ` James Dingwall
2013-12-12 1:03 ` Bob Liu
2013-12-13 16:59 ` James Dingwall
2013-12-17 6:11 ` Bob Liu
2013-12-18 12:04 ` Bob Liu
2013-12-19 19:08 ` James Dingwall
2013-12-20 3:17 ` Bob Liu
2013-12-20 12:22 ` James Dingwall
2013-12-26 8:42 ` James Dingwall
2014-01-02 6:25 ` Bob Liu
2014-01-07 9:21 ` James Dingwall
2014-01-09 10:48 ` Bob Liu
2014-01-09 10:54 ` James Dingwall
2014-01-09 11:04 ` James Dingwall
2014-01-15 8:49 ` James Dingwall
2014-01-15 14:41 ` Bob Liu
2014-01-15 16:35 ` James Dingwall
2014-01-16 1:22 ` Bob Liu
2014-01-16 10:52 ` James Dingwall
2014-01-28 17:15 ` James Dingwall
2014-01-29 14:35 ` Bob Liu
2014-01-29 14:45 ` James Dingwall
2014-01-31 16:56 ` Konrad Rzeszutek Wilk
2014-02-03 9:49 ` Daniel Kiper
2014-02-03 10:30 ` Konrad Rzeszutek Wilk
2014-02-03 11:20 ` James Dingwall
2014-02-03 14:00 ` Daniel Kiper
2013-12-10 8:16 ` Jan Beulich
2013-12-10 14:01 ` James Dingwall [this message]
2013-12-10 14:25 ` Jan Beulich
2013-12-10 14:52 ` James Dingwall
2013-12-10 14:59 ` Jan Beulich
2013-12-10 15:16 ` James Dingwall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52A71ED5.5080709@zynstra.com \
--to=james.dingwall@zynstra.com \
--cc=JBeulich@suse.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).