[Bug 258623] [routing] peformance - 2 numa domains vs signale numa domain
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 258623] cxgbe(4): Slow routing performance: 2 numa domains vs single numa domain"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 20 Sep 2021 10:24:43 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258623 Bug ID: 258623 Summary: [routing] peformance - 2 numa domains vs signale numa domain Product: Base System Version: 13.0-STABLE Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: konrad.kreciwilk@korbank.pl CC: net@FreeBSD.org Server: Dell R630, 2x CPU E5-2667 v4 - 2 numa domains, 64GB Ram NIC: 2x T62100-SO-CR - each connected to a separate numa domain * 2 numa domain test I use chelsio_affinity to assign irq to correct CPU cfg: ifconfig_cc0="up" ifconfig_cc1="up" ifconfig_cc2="up" ifconfig_cc3="up" #LAGG LACP ifconfig_lagg0="laggproto lacp laggport cc0 laggport cc2 -wol -vlanhwtso -tso -lro -hwrxtstmp -txtls use_flowid use_numa up" ifconfig_vlan2020="vlan 2020 vlandev lagg0" ifconfig_vlan2002="vlan 2002 vlandev lagg0" +--------+ +--------+ +---------+ | +---------+ +------+ | | Router | lagg0 | switch | | gen | | +---------+ +------+ | +--------+ +--------+ +---------+ I can achieve around 14Mpps without drop. Above this level, drops appear on the ccX/lagg0 interfaces. It looks like a CPU some free resources: # netstat -i -I lagg0 1 input lagg0 output packets errs idrops bytes packets errs bytes colls 15939431 0 555822 2246265134 15381955 0 2167675870 0 16600413 0 612946 2339414686 15978803 0 2253137798 0 15259699 0 575481 2150765886 14693013 0 2070319352 0 15935269 0 512558 2245569909 15382551 0 2167518240 0 16159627 0 616404 2277463695 15563046 0 2195364136 0 14841125 0 322695 1605926868 14540305 0 1562096456 0 # top -PSH last pid: 9745; load averages: 6.46, 2.02, 0.76 up 0+00:02:06 20:25:17 580 threads: 25 running, 471 sleeping, 84 waiting CPU 0: 0.0% user, 0.0% nice, 0.0% system, 59.2% interrupt, 40.8% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 57.7% interrupt, 42.3% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 57.7% interrupt, 42.3% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 60.6% interrupt, 39.4% idle CPU 4: 0.0% user, 0.0% nice, 0.0% system, 56.3% interrupt, 43.7% idle CPU 5: 0.0% user, 0.0% nice, 0.0% system, 62.0% interrupt, 38.0% idle CPU 6: 0.0% user, 0.0% nice, 0.0% system, 59.2% interrupt, 40.8% idle CPU 7: 0.0% user, 0.0% nice, 0.0% system, 53.5% interrupt, 46.5% idle CPU 8: 0.0% user, 0.0% nice, 1.4% system, 62.0% interrupt, 36.6% idle CPU 9: 0.0% user, 0.0% nice, 0.0% system, 67.6% interrupt, 32.4% idle CPU 10: 0.0% user, 0.0% nice, 0.0% system, 69.0% interrupt, 31.0% idle CPU 11: 0.0% user, 0.0% nice, 0.0% system, 66.2% interrupt, 33.8% idle CPU 12: 0.0% user, 0.0% nice, 0.0% system, 63.4% interrupt, 36.6% idle CPU 13: 0.0% user, 0.0% nice, 0.0% system, 62.0% interrupt, 38.0% idle CPU 14: 0.0% user, 0.0% nice, 0.0% system, 63.4% interrupt, 36.6% idle CPU 15: 0.0% user, 0.0% nice, 0.0% system, 63.4% interrupt, 36.6% idle Mem: 536M Active, 29M Inact, 1528M Wired, 60G Free ARC: 114M Total, 22M MFU, 88M MRU, 693K Header, 3231K Other 30M Compressed, 92M Uncompressed, 3.12:1 Ratio Swap: 32G Total, 32G Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12 root -92 - 0B 1472K CPU8 8 0:37 60.50% intr{irq152: t6nex1:0a0} 12 root -92 - 0B 1472K CPU10 10 0:36 60.42% intr{irq154: t6nex1:0a2} 12 root -92 - 0B 1472K CPU11 11 0:36 60.27% intr{irq155: t6nex1:0a3} 12 root -92 - 0B 1472K CPU14 14 0:36 60.26% intr{irq158: t6nex1:0a6} 12 root -92 - 0B 1472K CPU12 12 0:36 60.24% intr{irq156: t6nex1:0a4} 12 root -92 - 0B 1472K CPU9 9 0:36 60.15% intr{irq153: t6nex1:0a1} 12 root -92 - 0B 1472K CPU13 13 0:36 59.88% intr{irq157: t6nex1:0a5} 12 root -92 - 0B 1472K CPU15 15 0:36 59.41% intr{irq159: t6nex1:0a7} 12 root -92 - 0B 1472K WAIT 0 0:37 58.49% intr{irq98: t6nex0:0a0} 12 root -92 - 0B 1472K WAIT 1 0:37 57.89% intr{irq99: t6nex0:0a1} 12 root -92 - 0B 1472K WAIT 4 0:37 57.39% intr{irq102: t6nex0:0a4} 12 root -92 - 0B 1472K WAIT 5 0:36 57.35% intr{irq103: t6nex0:0a5} 12 root -92 - 0B 1472K WAIT 3 0:36 57.32% intr{irq101: t6nex0:0a3} 12 root -92 - 0B 1472K WAIT 6 0:36 57.12% intr{irq104: t6nex0:0a6} 12 root -92 - 0B 1472K WAIT 2 0:36 56.98% intr{irq100: t6nex0:0a2} 12 root -92 - 0B 1472K WAIT 7 0:36 56.85% intr{irq105: t6nex0:0a7} # pcm-numa.x Time elapsed: 1064 ms Core | IPC | Instructions | Cycles | Local DRAM accesses | Remote DRAM Accesses 0 1.31 4195 M 3203 M 3382 K 48 K 1 1.32 4211 M 3199 M 3241 K 27 K 2 1.33 4238 M 3196 M 3146 K 48 K 3 1.33 4238 M 3197 M 3143 K 26 K 4 1.32 4228 M 3197 M 3241 K 47 K 5 1.33 4243 M 3198 M 3046 K 29 K 6 1.33 4247 M 3195 M 3169 K 47 K 7 1.33 4264 M 3196 M 3180 K 20 K 8 1.29 4159 M 3224 M 2948 K 77 K 9 1.29 4172 M 3224 M 2865 K 92 K 10 1.29 4199 M 3247 M 3263 K 76 K 11 1.30 4237 M 3259 M 2892 K 91 K 12 1.30 4261 M 3274 M 3069 K 73 K 13 1.30 4231 M 3246 M 2959 K 104 K 14 1.30 4291 M 3291 M 3353 K 74 K 15 1.31 4221 M 3227 M 3008 K 85 K pmcstat-S cpu_clk_unhalted.thread flamegraph - https://files.fm/u/enhy23ffr -------------------- * single domain test In this scenario I create vlans on single cc0 (use one numa domian) ifconfig_vlan2020="vlan 2020 vlandev cc0" ifconfig_vlan2002="vlan 2002 vlandev cc0" +--------+ +--------+ +---------+ | +---------+ +------+ | | Router | cc0 | switch | | gen | | | | +------+ | +--------+ +--------+ +---------+ Using cc0 I can achieve 16Mpps without drops: # netstat -i -I cc0 1 input cc0 output packets errs idrops bytes packets errs bytes colls 15934346 0 0 2245565269 15933728 0 2245477291 0 15927621 0 0 2244617740 15928235 0 2244704202 0 15934688 0 0 2245613662 15934213 0 2245546449 0 15931155 0 0 2245115588 15931208 0 2245120654 0 15926995 0 0 2244529583 15927391 0 2244585093 0 15931114 0 0 2245109534 15931145 0 2245115823 0 # top -PSH last pid: 9976; load averages: 6.57, 2.51, 1.00 up 0+00:03:23 20:16:17 579 threads: 25 running, 470 sleeping, 84 waiting CPU 0: 0.0% user, 0.0% nice, 0.0% system, 95.4% interrupt, 4.6% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 95.4% interrupt, 4.6% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 94.7% interrupt, 5.3% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 93.9% interrupt, 6.1% idle CPU 4: 0.0% user, 0.0% nice, 0.0% system, 94.7% interrupt, 5.3% idle CPU 5: 0.0% user, 0.0% nice, 0.0% system, 94.7% interrupt, 5.3% idle CPU 6: 0.0% user, 0.0% nice, 0.0% system, 94.7% interrupt, 5.3% idle CPU 7: 0.0% user, 0.0% nice, 0.0% system, 93.1% interrupt, 6.9% idle CPU 8: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 9: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 10: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 11: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 12: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 13: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 14: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 15: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle Mem: 537M Active, 30M Inact, 1260M Wired, 60G Free ARC: 115M Total, 22M MFU, 89M MRU, 695K Header, 3260K Other 30M Compressed, 93M Uncompressed, 3.10:1 Ratio Swap: 32G Total, 32G Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12 root -92 - 0B 1472K CPU3 3 1:50 94.86% intr{irq101: t6nex0:0a3} 12 root -92 - 0B 1472K CPU1 1 1:49 94.68% intr{irq99: t6nex0:0a1} 12 root -92 - 0B 1472K CPU5 5 1:49 94.40% intr{irq103: t6nex0:0a5} 12 root -92 - 0B 1472K CPU7 7 1:49 94.18% intr{irq105: t6nex0:0a7} 12 root -92 - 0B 1472K CPU0 0 1:49 94.13% intr{irq98: t6nex0:0a0} 12 root -92 - 0B 1472K CPU6 6 1:49 94.11% intr{irq104: t6nex0:0a6} 12 root -92 - 0B 1472K CPU4 4 1:49 93.81% intr{irq102: t6nex0:0a4} 12 root -92 - 0B 1472K CPU2 2 1:48 93.56% intr{irq100: t6nex0:0a2} # pcm-numa.x Time elapsed: 1002 ms Core | IPC | Instructions | Cycles | Local DRAM accesses | Remote DRAM Accesses 0 1.93 6513 M 3374 M 4179 K 34 K 1 1.93 6516 M 3374 M 4153 K 3655 2 1.94 6518 M 3352 M 4122 K 33 K 3 1.94 6516 M 3367 M 4118 K 8574 4 1.94 6517 M 3361 M 4142 K 37 K 5 1.93 6516 M 3376 M 4147 K 10 K 6 1.93 6515 M 3371 M 4154 K 39 K 7 1.94 6514 M 3360 M 4173 K 12 K 8 0.24 1833 K 7596 K 1805 1378 9 0.20 728 K 3726 K 467 502 10 0.11 312 K 2779 K 227 234 11 0.14 486 K 3407 K 291 361 12 0.12 357 K 2956 K 183 132 13 0.07 195 K 2664 K 46 119 14 0.13 381 K 3047 K 455 212 15 0.23 765 K 3310 K 325 346 --------------------------------------------------------------------- pmcstat-S cpu_clk_unhalted.thread flamegraph - https://files.fm/u/3njfz2r3g * Summary I know, lagg makes a certain amount of overhead but based on my testing a single card performs better than two cards in lagg0 . -- You are receiving this mail because: You are the assignee for the bug.