Re: [PATCH v2 3/3] memcg: increase MEMCG_CHARGE_BATCH to 64

From: Muchun Song
Date: Thu Aug 25 2022 - 04:31:17 EST




> On Aug 25, 2022, at 08:05, Shakeel Butt <shakeelb@xxxxxxxxxx> wrote:
>
> For several years, MEMCG_CHARGE_BATCH was kept at 32 but with bigger
> machines and the network intensive workloads requiring througput in
> Gbps, 32 is too small and makes the memcg charging path a bottleneck.
> For now, increase it to 64 for easy acceptance to 6.0. We will need to
> revisit this in future for ever increasing demand of higher performance.
>
> Please note that the memcg charge path drain the per-cpu memcg charge
> stock, so there should not be any oom behavior change. Though it does
> have impact on rstat flushing and high limit reclaim backoff.
>
> To evaluate the impact of this optimization, on a 72 CPUs machine, we
> ran the following workload in a three level of cgroup hierarchy.
>
> $ netserver -6
> # 36 instances of netperf with following params
> $ netperf -6 -H ::1 -l 60 -t TCP_SENDFILE -- -m 10K
>
> Results (average throughput of netperf):
> Without (6.0-rc1) 10482.7 Mbps
> With patch 17064.7 Mbps (62.7% improvement)
>
> With the patch, the throughput improved by 62.7%.

This is very impressive.

>
> Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx>
> Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
> Acked-by: Soheil Hassas Yeganeh <soheil@xxxxxxxxxx>
> Reviewed-by: Feng Tang <feng.tang@xxxxxxxxx>
> Acked-by: Roman Gushchin <roman.gushchin@xxxxxxxxx>

Acked-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>

Thanks.