Re: High (200+) XFRM interface count performance problem (throughput)
From: Eyal Birger <hidden>
Date: 2021-02-24 08:17:01
Hi Vinš, On Tue, Feb 23, 2021 at 9:52 PM Vinš Karel [off-list ref] wrote:
Hello,
I would like to ask you for help or advise.
I'm testing setup with higher number of XFRM interfaces and I'm facing throughput degradation with a growing number of created XFRM interfaces - not concurrent tunnels established but only XFRM interfaces created - even in DOWN state.
Issue is only unidirectional - from "client" to "vpn hub". Throughput for traffic from hub to client is not affected.
XFRM interface created with:
for i in {1..500}; do link add ipsec$i type xfrm dev ens224 if_id $i ; done
I'm testing with iperf3 with 1 client connected - from client to hub:
2 interfaces - 1.36 Gbps
100 interfaces - 1.35 Gbps
200 interfaces - 1.19 Gbps
300 interfaces - 0.98 Gbps
500 interfaces - 0.71 Gbps
Throughput from hub to client is around 1.4 Gbps in all cases.
1 CPU core is 100%
Linux v-hub 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Can you please try with a higher kernel version (>= 5.9)?
We've done some work to improve xfrm interface scaling
specifically e98e44562ba2
("xfrm interface: store xfrmi contexts in a hash by if_id").
Thanks,
Eyal.