All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Lieven <pl@kamp.de>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] Qemu and heavily increased RSS usage
Date: Tue, 21 Jun 2016 17:12:57 +0200	[thread overview]
Message-ID: <57695979.2020102@kamp.de> (raw)
In-Reply-To: <20160621131815.GB2264@work-vm>

Am 21.06.2016 um 15:18 schrieb Dr. David Alan Gilbert:
> * Peter Lieven (pl@kamp.de) wrote:
>> Hi,
>>
>> while upgrading from Qemu 2.2.0 to Qemu 2.5.1.1 I noticed that the RSS memory usage has heavily increased.
>> We use hugepages so the RSS memory does not include VM memory. In Qemu 2.2.0 it used to be ~30MB per vServer
>> and increased to up to 300 - 400MB for Qemu 2.5.1.1 (same with master). The memory increases over time, but seems
>> not to grow indefinetly. I tried to bisect, but had no result so far that made sense. I also tried valgrind / massif, but
>> valgrind does not see the allocation (at least at exit) and massif fails to rund due to - so it pretends - heap corruption.
>>
>> Any help or ideas how to debug further would be appreciated.
> I think I'd try stripping devices off; can you get a similar difference
> to happen with a guest with no USB, no hugepages, no VGA and a simple
> locally stored IDE disk?

Will do. VGA I already ruled out. Hugepages I can try, but its easier
to monitor the RSS size if the vServer memory is outside the RSS.

>
> If you're having trouble bisecting is it possible it's a change
> in one of the libraries it's linked against?

Same libraries. If I compile qemu-2.2.0 and qemu/master on the exactly
same machine I see the difference.

>
> There was someone asking the other day on #qemu who had a setup that
> was apparently using much more RAM than expected and we didn't
> manage to track it down but I can't remember the version being used.

What I currently suspect are the following changes:
  - We changed the coroutine pool to a per thread model. I disabled the pool. This seems
    to cut the max used RSS to about 150MB which is still a lot more than qemu-2.2.0
  - I suspect that something (e.g. the object based device tree) is creating a lot of small allocations
    which create a massive overhead. I managed to get valgrind/massif running with attached debugger
    and took snapshots of the running VM. What I see is that kernel RSS size is much, much bigger than
    what massif sees as allocated memory. I talk of massif sees 5MB heap usage and the RSS size is 50MB or similar.
  - Changing the memory allocator to tcmalloc or jemalloc seems to relax the issue altough its not gone.
  - VGA memory seems to have been moved from VM memory into Heap. But thats a fixed 16MB allocation.

I will try to cut down devices as you proposed.

Peter

  reply	other threads:[~2016-06-21 15:13 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-21  8:21 [Qemu-devel] Qemu and heavily increased RSS usage Peter Lieven
2016-06-21 13:18 ` Dr. David Alan Gilbert
2016-06-21 15:12   ` Peter Lieven [this message]
2016-06-22 10:56     ` Stefan Hajnoczi
2016-06-22 19:55       ` Peter Lieven
2016-06-22 20:56         ` Peter Maydell
2016-06-24  9:37           ` Stefan Hajnoczi
2016-06-24  9:53             ` Peter Lieven
2016-06-24  9:57               ` Dr. David Alan Gilbert
2016-06-24  9:58             ` Peter Maydell
2016-06-24 10:45               ` Peter Lieven
2016-06-27 12:39                 ` Stefan Hajnoczi
2016-06-27 13:33                   ` Peter Lieven
2016-06-23  9:57   ` Peter Lieven
2016-06-24 22:57     ` Michael S. Tsirkin
2016-06-23 14:58   ` Peter Lieven
2016-06-23 15:00     ` Dr. David Alan Gilbert
2016-06-23 15:02       ` Peter Lieven
2016-06-23 15:21     ` Paolo Bonzini
2016-06-23 15:31       ` Peter Lieven
2016-06-23 15:47         ` Paolo Bonzini
2016-06-23 16:19           ` Peter Lieven
2016-06-23 16:53             ` Paolo Bonzini
2016-06-23 21:28               ` Peter Lieven
2016-06-24  4:10                 ` Paolo Bonzini
2016-06-24  8:11                   ` Peter Lieven
2016-06-24  8:20                     ` Paolo Bonzini
2016-06-24  8:45                       ` Peter Lieven

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=57695979.2020102@kamp.de \
    --to=pl@kamp.de \
    --cc=dgilbert@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.