Hi Billy,

I submitted fixes for VPP-963, now merged in both 17.07 and master/17.10, that 
I believe should address the NDR/PDR performance issue with the 10K and 1M flow 
cases. The regression was caused by a bug fix in the L2 learning path to update 
stale time stamp and sequence number of MAC entries in L2FIB. Because the time 
stamp is in unit of  minutes, whenever the clock hits the minute mark, there 
can be a prolonged burst of MAC updates affecting forwarding performance with 
large number of MACs in L2 FIB needing updates. My fix would smooth out the 
update burst to reduce the impact. I believe you should now find the 17.07 or 
17.10 performance for 10K and 1M flows slightly lower but fairly close to the 
level of 17.04, instead of somewhere between 1/3 to 1/2 to that of the 17.04 as 
you measured before.

I also doubled the memory size of L2FIB table to fit 4M MACs and set the learn 
limit to 4M entries. During my test, I found L2FIB will run out of memory at 
around 2.8M MACs with the previous memory size.

Regards,
John

From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On 
Behalf Of Billy McFall
Sent: Monday, August 28, 2017 12:47 PM
To: Maciek Konstantynowicz (mkonstan) <mkons...@cisco.com>
Cc: csit-...@lists.fd.io; vpp-dev <vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] VPP Performance drop from 17.04 to 17.07



On Mon, Aug 28, 2017 at 8:53 AM, Maciek Konstantynowicz (mkonstan) 
<mkons...@cisco.com<mailto:mkons...@cisco.com>> wrote:
+ csit-dev

Billy,

Per the last week CSIT project call, from CSIT perspective, we
classified your reported issue as Test coverage escape.

Summary
=======
CSIT test coverage got fixed, see more detail below. The CSIT tests
uncovered regression for L2BD with MAC learning with higher total number
of MACs in L2FIB, >>10k MAC, for multi-threaded configurations. Single-
threaded configurations seem to be not impacted.

Billy, Karl, Can you confirm this aligns with your findings?

When you say "multi-threaded configuration", I assume you mean multiple worker 
threads? Karl's tests had 4 workers, one for each NIC (physical and 
vhost-user). He only tested multi-threaded, so we can not confirm that 
single-threaded configurations seem to be not impacted.

Our numbers are a little different from yours, but we are both seeing drops 
between releases. We had a bigger drop off with 10k flows, but seems to be 
similar with the million flow tests.

I was a little disappointed the MAC limit change by John Lo on 8/23 didn't 
improve master number some.

Thanks for all the hard work and adding these additional test cases.

Billy


More detail
===========
MAC scale tests have been now added L2BD and L2BD+vhost CSIT suites, as
a simple extension to existing L2 testing suites. Some known issues with
TG prevented CSIT to add those tests in the past, but now as TG issues
have been addressed, the tests could be added swiftly. The complete list
of added tests is listed in [1] - thanks to Peter Mikus for great work
there!

Results from running those tests multiple times within FD.io<http://fd.io> CSIT 
lab
infra can be glanced over by checking dedicated test trigger commits
[2][3][4], summary graphs in linked xls [5]. The results confirm there
is regression in VPP l2fib code affecting all scaled up MAC tests in
multi-thread configuration. Single-thread configurations seems not be
impacted.

The tests in commit [1] are not merged yet, as they're waiting for
TG/TRex team to fix TRex issue with mis-calculating Ethernet FCS with
large number of L2 MAC flows (>10k MAC flows). Issue is tracked by [6],
TRex v2.29 with the fix ETA is w/e 1-Sep i.e. this week. Reported CSIT test
results are using Ethernet frames with UDP headers that's masking the
TRex issue.

We have also vpp git bisected the problem between v17.04 (good) and
v17.07 (bad) in a separate IXIA based lab in SJC, and found the culprit
vpp patch [7]. Awaiting fix from vpp-dev, jira ticket raised [8].

Many thanks for reporting this regression and working with CSIT to plug
this hole in testing.

-Maciek

[1] CSIT-786 L2FIB scale testing [https://gerrit.fd.io/r/#/c/8145/ ge8145] 
[https://jira.fd.io/browse/CSIT-786 
CSIT-786<https://gerrit.fd.io/r/#/c/8145/%20ge8145]%20[https://jira.fd.io/browse/CSIT-786%20CSIT-786>];
    L2FIB scale testing for 10k, 100k, 1M FIB entries
     ./l2:
     10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot
     10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot
     10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot
     10ge2p1x520-eth-l2bdscale10kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc
     10ge2p1x520-eth-l2bdscale100kmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc
     10ge2p1x520-eth-l2bdscale1mmaclrn-eth-2vhostvr1024-1vm-cfsrr1-ndrpdrdisc
[2] VPP master branch [https://gerrit.fd.io/r/#/c/8173/ 
ge8173<https://gerrit.fd.io/r/#/c/8173/%20ge8173>];
[3] VPP stable/1707 [https://gerrit.fd.io/r/#/c/8167/ 
ge8167<https://gerrit.fd.io/r/#/c/8167/%20ge8167>];
[4] VPP stable/1704 [https://gerrit.fd.io/r/#/c/8172/ 
ge8172<https://gerrit.fd.io/r/#/c/8172/%20ge8172>];
[5] CSIT-794 VPP v17.07 L2BD yields lower NDR and PDR performance vs. v17.04, 
20170825_l2fib_regression_10k_100k_1M.xlsx, [https://jira.fd.io/browse/CSIT-794 
CSIT-794<https://jira.fd.io/browse/CSIT-794%20CSIT-794>];
[6] TRex v2.28 Ethernet FCS mis-calculation issue 
[https://jira.fd.io/browse/CSIT-793 
CSIT-793<https://jira.fd.io/browse/CSIT-793%20CSIT-793>];
[7] commit 25ff2ea3a31e422094f6d91eab46222a29a77c4b;
[8] VPP v17.07 L2BD NDR and PDR multi-thread performance broken 
[https://jira.fd.io/browse/VPP-963 
VPP-963<https://jira.fd.io/browse/VPP-963%20VPP-963>];

On 14 Aug 2017, at 23:40, Billy McFall 
<bmcf...@redhat.com<mailto:bmcf...@redhat.com>> wrote:

In the last VPP call, I reported some internal Red Hat performance testing was 
showing a significant drop in performance between releases 17.04 to 17.07. This 
with l2-bridge testing - PVP - 0.002% Drop Rate:
   VPP-17.04: 256 Flow 7.8 MP/s 10k Flow 7.3 MP/s 1m Flow 5.2 MP/s
   VPP-17.07: 256 Flow 7.7 MP/s 10k Flow 2.7 MP/s 1m Flow 1.8 MP/s

The performance team re-ran some of the tests for me with some additional data 
collected. Looks like the size of the L2 FIB table was reduced in 17.07. Below 
are the number of entries in the MAC Table after the tests are run:
   17.04:
     show l2fib
     4000008 l2fib entries
   17.07:
     show l2fib
     1067053 l2fib entries with 1048576 learned (or non-static) entries

This caused more packets to be flooded (see out of 'show node counters' below). 
I looked but couldn't find anything. Is the size of the L2 FIB Table table 
configurable?

Thanks,
Billy McFall


17.04:

show node counters
   Count                    Node                  Reason
:
 313035313                l2-input                L2 input packets
    555726                l2-flood                L2 flood packets
:
 310115490                l2-input                L2 input packets
    824859                l2-flood                L2 flood packets
:
 313508376                l2-input                L2 input packets
   1041961                l2-flood                L2 flood packets
:
 313691024                l2-input                L2 input packets
    698968                l2-flood                L2 flood packets

17.07:

show node counters
   Count                    Node                  Reason
:
  97810569                l2-input                L2 input packets
  72557612                l2-flood                L2 flood packets
:
  97830674                l2-input                L2 input packets
  72478802                l2-flood                L2 flood packets
:
  97714888                l2-input                L2 input packets
  71655987                l2-flood                L2 flood packets
:
  97710374                l2-input                L2 input packets
  70058006                l2-flood                L2 flood packets


--
Billy McFall
SDN Group
Office of Technology
Red Hat
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
https://lists.fd.io/mailman/listinfo/vpp-dev




--
Billy McFall
SDN Group
Office of Technology
Red Hat
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to