linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nitesh Narayan Lal <nitesh@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Cc: kvm list <kvm@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	lcapitulino@redhat.com, pagupta@redhat.com, wei.w.wang@intel.com,
	Yang Zhang <yang.zhang.wz@gmail.com>,
	Rik van Riel <riel@surriel.com>,
	dodgen@google.com, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	dhildenb@redhat.com, Andrea Arcangeli <aarcange@redhat.com>,
	David Hildenbrand <david@redhat.com>
Subject: Re: [RFC][Patch v9 0/6] KVM: Guest Free Page Hinting
Date: Wed, 6 Mar 2019 15:31:18 -0500	[thread overview]
Message-ID: <7f82319b-17a8-71f9-853e-fccbe064282c@redhat.com> (raw)
In-Reply-To: <CAKgT0UePn86cnjzietzuqdosjJH3McH2xDQ3ocjbujMKdsk7Pw@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 4288 bytes --]

On 3/6/19 2:24 PM, Alexander Duyck wrote:
> On Wed, Mar 6, 2019 at 11:18 AM David Hildenbrand <david@redhat.com> wrote:
>> On 06.03.19 20:08, Alexander Duyck wrote:
>>> On Wed, Mar 6, 2019 at 11:00 AM David Hildenbrand <david@redhat.com> wrote:
>>>> On 06.03.19 19:43, Michael S. Tsirkin wrote:
>>>>> On Wed, Mar 06, 2019 at 01:30:14PM -0500, Nitesh Narayan Lal wrote:
>>>>>>>> Here are the results:
>>>>>>>>
>>>>>>>> Procedure: 3 Guests of size 5GB is launched on a single NUMA node with
>>>>>>>> total memory of 15GB and no swap. In each of the guest, memhog is run
>>>>>>>> with 5GB. Post-execution of memhog, Host memory usage is monitored by
>>>>>>>> using Free command.
>>>>>>>>
>>>>>>>> Without Hinting:
>>>>>>>>                  Time of execution    Host used memory
>>>>>>>> Guest 1:        45 seconds            5.4 GB
>>>>>>>> Guest 2:        45 seconds            10 GB
>>>>>>>> Guest 3:        1  minute               15 GB
>>>>>>>>
>>>>>>>> With Hinting:
>>>>>>>>                 Time of execution     Host used memory
>>>>>>>> Guest 1:        49 seconds            2.4 GB
>>>>>>>> Guest 2:        40 seconds            4.3 GB
>>>>>>>> Guest 3:        50 seconds            6.3 GB
>>>>>>> OK so no improvement.
>>>>>> If we are looking in terms of memory we are getting back from the guest,
>>>>>> then there is an improvement. However, if we are looking at the
>>>>>> improvement in terms of time of execution of memhog then yes there is none.
>>>>> Yes but the way I see it you can't overcommit this unused memory
>>>>> since guests can start using it at any time.  You timed it carefully
>>>>> such that this does not happen, but what will cause this timing on real
>>>>> guests?
>>>> Whenever you overcommit you will need backup swap. There is no way
>>>> around it. It just makes the probability of you having to go to disk
>>>> less likely.
>>>>
>>>> If you assume that all of your guests will be using all of their memory
>>>> all the time, you don't have to think about overcommiting memory in the
>>>> first place. But this is not what we usually have.
>>> Right, but the general idea is that free page hinting allows us to
>>> avoid having to use the swap if we are hinting the pages as unused.
>>> The general assumption we are working with is that some percentage of
>>> the VMs are unused most of the time so you can share those resources
>>> between multiple VMs and have them free those up normally.
>> Yes, similar to VCPU yielding or playin scheduling when the VCPU is
>> spleeping. Instead of busy looping, hand over the resource to somebody
>> who can actually make use of it.
>>
>>> If we can reduce swap usage we can improve overall performance and
>>> that was what I was pointing out with my test. I had also done
>>> something similar to what Nitesh was doing with his original test
>>> where I had launched 8 VMs with 8GB of memory per VM on a system with
>>> 32G of RAM and only 4G of swap. In that setup I could keep a couple
>>> VMs busy at a time without issues, and obviously without the patch I
>>> just started to OOM qemu instances and  could only have 4 VMs at a
>>> time running at maximum.
>> While these are nice experiments (especially to showcase reduced swap
>> usage!), I would not suggest to use 4GB of swap on a x2 overcomited
>> system (32GB overcommited). Disks are so cheap nowadays that one does
>> not have to play with fire.
> Right. The only reason for using 4G is because the system normally has
> 128G of RAM available and I didn't really think I would need swap for
> the system when I originally configured it.
>
>> But yes, reducing swap usage implies overall system performance (unless
>> the hinting is terribly slow :) ). Reducing swap usage, not swap space :)
> Right. Also the swap is really a necessity if we are going to look at
> things like MADV_FREE as I have not seen us really start to free up
> resources until we are starting to put some pressure on swap.
I agree in order to see the effect of MADV_FREE we may have to use
swap(it doesn't have to be huge).
About Michael's comment, if the guest is consistently under memory
pressure then we may not get anything back in the host at all during
this time.


-- 
Thanks
Nitesh


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2019-03-06 20:31 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-06 15:50 [RFC][Patch v9 0/6] KVM: Guest Free Page Hinting Nitesh Narayan Lal
2019-03-06 15:50 ` [RFC][Patch v9 1/6] KVM: Guest free page hinting support Nitesh Narayan Lal
2019-03-06 23:43   ` Alexander Duyck
2019-03-07 19:32     ` Nitesh Narayan Lal
2019-03-06 15:50 ` [RFC][Patch v9 2/6] KVM: Enables the kernel to isolate guest free pages Nitesh Narayan Lal
2019-03-07 18:30   ` Alexander Duyck
2019-03-07 19:23     ` Nitesh Narayan Lal
2019-03-07 19:30       ` David Hildenbrand
2019-03-07 21:32         ` Alexander Duyck
2019-03-07 21:40           ` David Hildenbrand
2019-03-07 22:35             ` Alexander Duyck
2019-03-08  2:28               ` Michael S. Tsirkin
2019-03-08  2:32               ` Michael S. Tsirkin
2019-03-08 18:06                 ` Alexander Duyck
2019-03-08 18:59                   ` Michael S. Tsirkin
2019-03-08 19:10                   ` Nitesh Narayan Lal
2019-03-08 19:25                     ` Alexander Duyck
2019-03-08 19:38                       ` Nitesh Narayan Lal
2019-03-08 21:39                         ` Alexander Duyck
2019-03-12 19:46                           ` Nitesh Narayan Lal
2019-03-12 21:13                             ` Alexander Duyck
2019-03-12 21:53                               ` David Hildenbrand
2019-03-12 22:56                                 ` Alexander Duyck
2019-03-13 11:54                               ` Nitesh Narayan Lal
2019-03-13 12:17                                 ` David Hildenbrand
2019-03-13 13:08                                   ` Nitesh Narayan Lal
2019-03-13 16:37                                   ` Alexander Duyck
2019-03-13 16:39                                     ` David Hildenbrand
2019-03-13 22:54                                       ` Alexander Duyck
2019-03-13 23:18                                         ` David Hildenbrand
2019-03-06 15:50 ` [RFC][Patch v9 3/6] KVM: Enables the kernel to report isolated pages Nitesh Narayan Lal
2019-03-06 21:30   ` Alexander Duyck
2019-03-07 13:23     ` Nitesh Narayan Lal
2019-03-06 15:50 ` [RFC][Patch v9 4/6] KVM: Reporting page poisoning value to the host Nitesh Narayan Lal
2019-03-06 15:50 ` [RFC][Patch v9 5/6] KVM: Enabling guest free page hinting via static key Nitesh Narayan Lal
2019-03-06 15:50 ` [RFC][Patch v9 6/6] KVM: Adding tracepoints for guest free page hinting Nitesh Narayan Lal
2019-03-06 15:52 ` [RFC][QEMU Patch] KVM: Enable QEMU to free the pages hinted by the guest Nitesh Narayan Lal
2019-03-06 23:49   ` Alexander Duyck
2019-03-07  0:35     ` Alexander Duyck
2019-03-07 12:23       ` Nitesh Narayan Lal
2019-03-06 16:09 ` [RFC][Patch v9 0/6] KVM: Guest Free Page Hinting Michael S. Tsirkin
2019-03-06 18:07   ` Nitesh Narayan Lal
2019-03-06 18:12     ` Michael S. Tsirkin
2019-03-06 18:30       ` Nitesh Narayan Lal
2019-03-06 18:38         ` Michael S. Tsirkin
2019-03-06 18:40           ` Nitesh Narayan Lal
2019-03-06 18:43             ` Alexander Duyck
2019-03-06 18:43         ` Michael S. Tsirkin
2019-03-06 18:59           ` David Hildenbrand
2019-03-06 19:08             ` Alexander Duyck
2019-03-06 19:18               ` David Hildenbrand
2019-03-06 19:24                 ` Alexander Duyck
2019-03-06 20:31                   ` Nitesh Narayan Lal [this message]
2019-03-06 20:32             ` Michael S. Tsirkin
2019-03-06 21:40               ` David Hildenbrand
2019-03-06 22:18                 ` Michael S. Tsirkin
2019-03-06 23:12                   ` Alexander Duyck
2019-03-14 16:42       ` Nitesh Narayan Lal
2019-03-14 16:58         ` Alexander Duyck
2019-03-18 15:57           ` Nitesh Narayan Lal
2019-03-19 13:33             ` David Hildenbrand
2019-03-19 16:04               ` Nitesh Narayan Lal
2019-03-19 17:38                 ` Alexander Duyck
2019-03-19 17:59                   ` Nitesh Narayan Lal
2019-03-20 13:18                     ` Nitesh Narayan Lal
2019-03-25 14:27                       ` Nitesh Narayan Lal
2019-03-25 15:37                         ` Michael S. Tsirkin
2019-03-25 15:42                           ` Nitesh Narayan Lal
2019-03-06 18:00 ` Alexander Duyck
2019-03-06 19:07   ` Nitesh Narayan Lal
2019-03-06 22:05     ` Alexander Duyck
2019-03-07 13:09       ` Nitesh Narayan Lal
2019-03-07 18:45         ` Alexander Duyck
2019-03-07 18:53           ` Michael S. Tsirkin
2019-03-07 19:27             ` David Hildenbrand
2019-03-08  2:24               ` Michael S. Tsirkin
2019-03-08 11:53                 ` David Hildenbrand
2019-03-07 21:14             ` Alexander Duyck
2019-03-07 21:28               ` David Hildenbrand
2019-03-07 22:19                 ` Alexander Duyck
2019-03-07 19:45           ` Nitesh Narayan Lal
2019-03-07 19:49           ` David Hildenbrand
2019-03-07 18:46   ` Michael S. Tsirkin
2019-03-12 19:58     ` David Hildenbrand

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=7f82319b-17a8-71f9-853e-fccbe064282c@redhat.com \
    --to=nitesh@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=alexander.duyck@gmail.com \
    --cc=david@redhat.com \
    --cc=dhildenb@redhat.com \
    --cc=dodgen@google.com \
    --cc=konrad.wilk@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=lcapitulino@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mst@redhat.com \
    --cc=pagupta@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@surriel.com \
    --cc=wei.w.wang@intel.com \
    --cc=yang.zhang.wz@gmail.com \
    /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).