All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zlatko Calusic <zcalusic@bitsync.net>
To: Hush Bensen <hush.bensen@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 0/3] mm: improve page aging fairness between zones/nodes
Date: Wed, 24 Jul 2013 15:59:56 +0200	[thread overview]
Message-ID: <51EFDDDC.50504@bitsync.net> (raw)
In-Reply-To: <51EFCCB2.5020806@gmail.com>

On 24.07.2013 14:46, Hush Bensen wrote:
> ao? 2013/7/24 19:18, Zlatko Calusic a??e??:
>> On 22.07.2013 18:48, Zlatko Calusic wrote:
>>> On 19.07.2013 22:55, Johannes Weiner wrote:
>>>> The way the page allocator interacts with kswapd creates aging
>>>> imbalances, where the amount of time a userspace page gets in memory
>>>> under reclaim pressure is dependent on which zone, which node the
>>>> allocator took the page frame from.
>>>>
>>>> #1 fixes missed kswapd wakeups on NUMA systems, which lead to some
>>>> nodes falling behind for a full reclaim cycle relative to the other
>>>> nodes in the system
>>>>
>>>> #3 fixes an interaction where kswapd and a continuous stream of page
>>>> allocations keep the preferred zone of a task between the high and
>>>> low watermark (allocations succeed + kswapd does not go to sleep)
>>>> indefinitely, completely underutilizing the lower zones and
>>>> thrashing on the preferred zone
>>>>
>>>> These patches are the aging fairness part of the thrash-detection
>>>> based file LRU balancing. Andrea recommended to submit them
>>>> separately as they are bugfixes in their own right.
>>>>
>>>
>>> I have the patch applied and under testing. So far, so good. It looks
>>> like it could finally fix the bug that I was chasing few months ago
>>> (nicely described in your bullet #3). But, few more days of testing will
>>> be needed before I can reach a quality verdict.
>>>
>>
>> Well, only 2 days later it's already obvious that the patch is
>> perfect! :)
>>
>> In the attached image, in the left column are the graphs covering last
>> day and a half. It can be observed that zones are really balanced, and
>> that aging is practically perfect. Graphs on the right column cover
>> last 10 day period, and the left side of the upper graph shows how it
>> would look with the stock kernel after about 20 day uptime (although
>> only a few days is enough to reach such imbalance). File pages in the
>> Normal zone are extinct species (red) and the zone is choke full of
>> anon pages (blue). Having seen a lot of this graphs, I'm certain that
>> it won't happen anymore with your patch applied. The balance is
>> restored! Thank you for your work. Feel free to add:
>>
>> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
>
> Thanks for your testing Zlatko, could you tell me which benchmark or
> workload you are using? Btw, which tool is used to draw these nice
> pictures? ;-)
>

Workload is mixed (various services, light load). What makes the biggest 
I/O load is backup procedure that goes every evening. The graphs are 
home-made, a little bit of rrd, a little bit of perl, nothing too 
complex. I'm actually slowly getting rid of these extra graphs, because 
I used them only for debugging this specific problem, which is now fixed 
thanks to Johannes.

-- 
Zlatko

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Zlatko Calusic <zcalusic@bitsync.net>
To: Hush Bensen <hush.bensen@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 0/3] mm: improve page aging fairness between zones/nodes
Date: Wed, 24 Jul 2013 15:59:56 +0200	[thread overview]
Message-ID: <51EFDDDC.50504@bitsync.net> (raw)
In-Reply-To: <51EFCCB2.5020806@gmail.com>

On 24.07.2013 14:46, Hush Bensen wrote:
> 于 2013/7/24 19:18, Zlatko Calusic 写道:
>> On 22.07.2013 18:48, Zlatko Calusic wrote:
>>> On 19.07.2013 22:55, Johannes Weiner wrote:
>>>> The way the page allocator interacts with kswapd creates aging
>>>> imbalances, where the amount of time a userspace page gets in memory
>>>> under reclaim pressure is dependent on which zone, which node the
>>>> allocator took the page frame from.
>>>>
>>>> #1 fixes missed kswapd wakeups on NUMA systems, which lead to some
>>>> nodes falling behind for a full reclaim cycle relative to the other
>>>> nodes in the system
>>>>
>>>> #3 fixes an interaction where kswapd and a continuous stream of page
>>>> allocations keep the preferred zone of a task between the high and
>>>> low watermark (allocations succeed + kswapd does not go to sleep)
>>>> indefinitely, completely underutilizing the lower zones and
>>>> thrashing on the preferred zone
>>>>
>>>> These patches are the aging fairness part of the thrash-detection
>>>> based file LRU balancing. Andrea recommended to submit them
>>>> separately as they are bugfixes in their own right.
>>>>
>>>
>>> I have the patch applied and under testing. So far, so good. It looks
>>> like it could finally fix the bug that I was chasing few months ago
>>> (nicely described in your bullet #3). But, few more days of testing will
>>> be needed before I can reach a quality verdict.
>>>
>>
>> Well, only 2 days later it's already obvious that the patch is
>> perfect! :)
>>
>> In the attached image, in the left column are the graphs covering last
>> day and a half. It can be observed that zones are really balanced, and
>> that aging is practically perfect. Graphs on the right column cover
>> last 10 day period, and the left side of the upper graph shows how it
>> would look with the stock kernel after about 20 day uptime (although
>> only a few days is enough to reach such imbalance). File pages in the
>> Normal zone are extinct species (red) and the zone is choke full of
>> anon pages (blue). Having seen a lot of this graphs, I'm certain that
>> it won't happen anymore with your patch applied. The balance is
>> restored! Thank you for your work. Feel free to add:
>>
>> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
>
> Thanks for your testing Zlatko, could you tell me which benchmark or
> workload you are using? Btw, which tool is used to draw these nice
> pictures? ;-)
>

Workload is mixed (various services, light load). What makes the biggest 
I/O load is backup procedure that goes every evening. The graphs are 
home-made, a little bit of rrd, a little bit of perl, nothing too 
complex. I'm actually slowly getting rid of these extra graphs, because 
I used them only for debugging this specific problem, which is now fixed 
thanks to Johannes.

-- 
Zlatko


  reply	other threads:[~2013-07-24 14:41 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-19 20:55 [patch 0/3] mm: improve page aging fairness between zones/nodes Johannes Weiner
2013-07-19 20:55 ` Johannes Weiner
2013-07-19 20:55 ` [patch 1/3] mm: vmscan: fix numa reclaim balance problem in kswapd Johannes Weiner
2013-07-19 20:55   ` Johannes Weiner
2013-07-22 19:47   ` Rik van Riel
2013-07-22 19:47     ` Rik van Riel
2013-07-22 20:14     ` Johannes Weiner
2013-07-22 20:14       ` Johannes Weiner
2013-07-26 22:53   ` Andrew Morton
2013-07-26 22:53     ` Andrew Morton
2013-07-30 17:45     ` Johannes Weiner
2013-07-30 17:45       ` Johannes Weiner
2013-07-31 12:43       ` Johannes Weiner
2013-07-31 12:43         ` Johannes Weiner
2013-07-19 20:55 ` [patch 2/3] mm: page_alloc: rearrange watermark checking in get_page_from_freelist Johannes Weiner
2013-07-19 20:55   ` Johannes Weiner
2013-07-22 19:51   ` Rik van Riel
2013-07-22 19:51     ` Rik van Riel
2013-07-19 20:55 ` [patch 3/3] mm: page_alloc: fair zone allocator policy Johannes Weiner
2013-07-19 20:55   ` Johannes Weiner
2013-07-22 20:21   ` Rik van Riel
2013-07-22 20:21     ` Rik van Riel
2013-07-22 21:04     ` Johannes Weiner
2013-07-22 21:04       ` Johannes Weiner
2013-07-22 22:48       ` Rik van Riel
2013-07-22 22:48         ` Rik van Riel
2013-07-25  6:50     ` Paul Bolle
2013-07-25  6:50       ` Paul Bolle
2013-07-25 15:10       ` Johannes Weiner
2013-07-25 15:10         ` Johannes Weiner
2013-07-25 15:20         ` Paul Bolle
2013-07-25 15:20           ` Paul Bolle
2013-07-29 17:48   ` Andrea Arcangeli
2013-07-29 17:48     ` Andrea Arcangeli
2013-07-29 22:24     ` Johannes Weiner
2013-07-29 22:24       ` Johannes Weiner
2013-08-01  2:56   ` Minchan Kim
2013-08-01  2:56     ` Minchan Kim
2013-08-01  4:31     ` Rik van Riel
2013-08-01  4:31       ` Rik van Riel
2013-08-01 15:51       ` Andrea Arcangeli
2013-08-01 15:51         ` Andrea Arcangeli
2013-08-01 19:58         ` Johannes Weiner
2013-08-01 19:58           ` Johannes Weiner
2013-08-01 22:16           ` Andrea Arcangeli
2013-08-01 22:16             ` Andrea Arcangeli
2013-08-02  6:22     ` Johannes Weiner
2013-08-02  6:22       ` Johannes Weiner
2013-08-02  7:32       ` Minchan Kim
2013-08-02  7:32         ` Minchan Kim
2013-07-22 16:48 ` [patch 0/3] mm: improve page aging fairness between zones/nodes Zlatko Calusic
2013-07-22 16:48   ` Zlatko Calusic
2013-07-22 17:01   ` Johannes Weiner
2013-07-22 17:01     ` Johannes Weiner
2013-07-22 17:14     ` Zlatko Calusic
2013-07-24 11:18   ` Zlatko Calusic
2013-07-24 12:46     ` Hush Bensen
2013-07-24 12:46       ` Hush Bensen
2013-07-24 13:59       ` Zlatko Calusic [this message]
2013-07-24 13:59         ` Zlatko Calusic
2013-07-31  9:33     ` Zlatko Calusic
2013-07-31  9:33       ` Zlatko Calusic
2013-07-26 22:45 ` Andrew Morton
2013-07-26 22:45   ` Andrew Morton
2013-07-26 23:14   ` Johannes Weiner
2013-07-26 23:14     ` Johannes Weiner

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=51EFDDDC.50504@bitsync.net \
    --to=zcalusic@bitsync.net \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=hush.bensen@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=riel@redhat.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 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.