Re: [PATCH] memcg: reduce memcg tree traversals for stats collection

From: Shakeel Butt
Date: Wed Jul 25 2018 - 10:28:10 EST


On Wed, Jul 25, 2018 at 4:26 AM Bruce Merry <bmerry@xxxxxxxxx> wrote:
>
> On 25 July 2018 at 00:46, Shakeel Butt <shakeelb@xxxxxxxxxx> wrote:
> > I ran a simple benchmark which reads the root_mem_cgroup's stat file
> > 1000 times in the presense of 2500 memcgs on cgroup-v1. The results are:
> >
> > Without the patch:
> > $ time ./read-root-stat-1000-times
> >
> > real 0m1.663s
> > user 0m0.000s
> > sys 0m1.660s
> >
> > With the patch:
> > $ time ./read-root-stat-1000-times
> >
> > real 0m0.468s
> > user 0m0.000s
> > sys 0m0.467s
>
> Thanks for cc'ing me. I've tried this patch using my test case and the
> results are interesting. With the patch applied, running my script
> only generates about 8000 new cgroups, compared to 40,000 before -
> presumably because the optimisation has altered the timing.
>
> On the other hand, if I run the script 5 times to generate 40000
> zombie cgroups, the time to get stats for the root cgroup (cgroup-v1)
> is almost unchanged at around 18ms (was 20ms, but there were slightly
> more cgroups as well), compared to the almost 4x speedup you're seeing
> in your test.
>

Hi Bruce, I think your script is trying to create zombies, so, the
experiments after that script will be non-deterministic. Why not just
create 40k cgroups ,no need for zombies, and the see how much this
patch affects reading stats.

Shakeel