Re: [PATCH] mm: consider all swapped back pages in used-once logic

From: Andrew Morton
Date: Thu May 17 2012 - 16:23:23 EST


On Thu, 17 May 2012 14:10:49 +0200
Michal Hocko <mhocko@xxxxxxx> wrote:

> > > This patch fixes a regression introduced by this commit for heavy shmem
> >
> > A performance regression, specifically.
> >
> > Are you able to quantify it?
>
> The customer's workload is shmem backed database (80% of RAM) and
> they are measuring transactions/s with an IO in the background (20%).
> Transactions touch more or less random rows in the table.
> The rate goes down drastically when we start swapping out memory.
>
> Numbers are more descriptive (without the patch is 100%, with 5
> representative runs)
> Average rate 315.83%
> Best rate 131.76%
> Worst rate 641.25%
>
> Standard deviation (calibrated to average) is ~4% while without the
> patch we are at 62.82%.
> The big variance without the patch is caused by the excessive swapping
> which doesn't occur with the patch applied.
>
> * Worst run (100%) compared to a random run with the patch
> pgpgin pswpin pswpout pgmajfault
> 1.58% 0.00% 0.01% 0.22%
>
> Average size of the LRU lists:
> nr_inactive_anon nr_active_anon nr_inactive_file nr_active_file
> 52.91% 7234.72% 249.39% 126.64%
>
> * Best run
> pgpgin pswpin pswpout pgmajfault
> 3.37% 0.00% 0.11% 0.39%
>
> nr_inactive_anon nr_active_anon nr_inactive_file nr_active_file
> 49.85% 3868.74% 175.03% 121.27%

I turned the above into this soundbite:

: The customer's workload is shmem backed database (80% of RAM) and they are
: measuring transactions/s with an IO in the background (20%). Transactions
: touch more or less random rows in the table. Total runtime was
: approximately tripled by commit 64574746 and this patch restores the
: previous throughput levels.

Was that truthful?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/