documentation:examples:forwarding_performance_lab_of_an_ibm_system_x3550_m3_with_10-gigabit_intel_x540-at2
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | documentation:examples:forwarding_performance_lab_of_an_ibm_system_x3550_m3_with_10-gigabit_intel_x540-at2 [2015/07/03 22:20] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Forwarding performance lab of an IBM System x3550 M3 with 10-Gigabit Intel X540-AT2 ====== | ||
+ | {{description> | ||
+ | ===== Hardware detail ===== | ||
+ | |||
+ | This lab will test an [[IBM System x3550 M3]] with **quad** cores (Intel Xeon L5630 2.13GHz, hyper-threading disabled) and a dual port Intel 10-Gigabit X540-AT2 connected to the PCI-Express Bus. | ||
+ | |||
+ | ===== Lab set-up ===== | ||
+ | |||
+ | The lab is detailed here: [[documentation: | ||
+ | |||
+ | BSDRP-amd64 v1.51 (FreeBSD 10.0-BETA2 with autotune mbuf patch) is used on the DUT. | ||
+ | ==== Diagram ==== | ||
+ | |||
+ | < | ||
+ | +-----------------------------------+ | ||
+ | | | ||
+ | | | ||
+ | | ix0: 8.8.8.1 (a0: | ||
+ | | 2001: | ||
+ | | | ||
+ | | ix1: 9.9.9.1 (a0: | ||
+ | | 2001: | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | +-----------------------------------+ | ||
+ | </ | ||
+ | |||
+ | The generator **MUST** generate lot's of smallest IP flows (multiple source/ | ||
+ | |||
+ | Here is an example for generating 2000 flows (100 different source IP * 20 different destination IP): | ||
+ | < | ||
+ | pkt-gen -i ix0 -f tx -n 1000000000 -l 60 -d 9.1.1.1: | ||
+ | </ | ||
+ | |||
+ | <note warning> | ||
+ | Netmap disable hardware checksum on Intel NIC, you need to use a FreeBSD -head with svn revision of 257758 minimum with the[[https:// | ||
+ | </ | ||
+ | Receiver will use this command: | ||
+ | < | ||
+ | pkt-gen -i ix1 -f rx -w 4 | ||
+ | </ | ||
+ | ===== Basic configuration ===== | ||
+ | |||
+ | ==== Disabling Ethernet flow-control === | ||
+ | |||
+ | First, disable Ethernet flow-control on both servers: | ||
+ | < | ||
+ | echo " | ||
+ | echo " | ||
+ | </ | ||
+ | |||
+ | ==== Disabling LRO and TSO ==== | ||
+ | |||
+ | A router [[Documentation: | ||
+ | |||
+ | But on a standard FreeBSD: | ||
+ | < | ||
+ | ifconfig ix0 -tso4 -tso6 -lro | ||
+ | ifconfig ix1 -tso4 -tso6 -lro | ||
+ | </ | ||
+ | ==== Static routes and ARP entries on R2 ==== | ||
+ | |||
+ | Configure static routes: | ||
+ | < | ||
+ | sysrc static_routes=" | ||
+ | sysrc route_generator=" | ||
+ | sysrc route_receiver=" | ||
+ | sysrc ipv6_static_routes=" | ||
+ | sysrc ipv6_route_generator6=" | ||
+ | sysrc ipv6_route_receiver6=" | ||
+ | </ | ||
+ | |||
+ | And configure IP and static ARP: | ||
+ | < | ||
+ | sysrc ifconfig_ix0=" | ||
+ | sysrc ifconfig_ix0_ipv6: | ||
+ | sysrc ifconfig_ix1=" | ||
+ | sysrc ifconfig_ix1_ipv6=" | ||
+ | sysrc static_arp_pairs=" | ||
+ | sysrc static_arp_generator=" | ||
+ | sysrc static_arp_receiver=" | ||
+ | </ | ||
+ | |||
+ | ===== Default fast-forwarding speed ===== | ||
+ | |||
+ | With the default parameters, on multi-flow traffic generated at 11.2Mpps (Still not the maximum rate for TenGigaEthernet), | ||
+ | |||
+ | < | ||
+ | [root@BSDRP]~# | ||
+ | input (Total) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | The traffic is correctly load-balanced between NIC-queue/ | ||
+ | |||
+ | < | ||
+ | [root@BSDRP]~# | ||
+ | irq258: ix0:que 0 9046464 | ||
+ | irq259: ix0:que 1 1923385 | ||
+ | irq260: ix0:que 2 2926703 | ||
+ | irq261: ix0:que 3 2911272 | ||
+ | irq262: ix0: | ||
+ | irq263: ix1:que 0 | ||
+ | irq264: ix1:que 1 | ||
+ | irq265: ix1:que 2 | ||
+ | irq266: ix1:que 3 | ||
+ | irq267: ix1: | ||
+ | |||
+ | [root@BSDRP]~# | ||
+ | last pid: 3483; load averages: | ||
+ | 156 processes: 13 running, 97 sleeping, 46 waiting | ||
+ | |||
+ | Mem: 14M Active, 10M Inact, 553M Wired, 9856K Buf, 15G Free | ||
+ | Swap: | ||
+ | |||
+ | |||
+ | PID USERNAME PRI NICE | ||
+ | 11 root | ||
+ | 11 root | ||
+ | 11 root | ||
+ | 0 root | ||
+ | 11 root | ||
+ | 0 root | ||
+ | 0 root | ||
+ | 0 root | ||
+ | 11 root | ||
+ | 11 root | ||
+ | 11 root | ||
+ | 11 root | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== ixgbe(4) tunning ==== | ||
+ | |||
+ | === rx_process_limit and tx_process_limit === | ||
+ | |||
+ | What are the impact of modifying these limit on PPS? | ||
+ | |||
+ | < | ||
+ | x [r|t]x_process_limit=256(default) | ||
+ | + [r|t]x_process_limit=512 | ||
+ | * [r|t]x_process_limit=-1(nolimit) | ||
+ | +--------------------------------------------------------------------------------+ | ||
+ | |* ++ * x+ x * * * | ||
+ | ||______M__A_________| | ||
+ | | |__A___| | ||
+ | | |______M__A________| | ||
+ | +--------------------------------------------------------------------------------+ | ||
+ | N | ||
+ | x | ||
+ | + | ||
+ | No difference proven at 95.0% confidence | ||
+ | * | ||
+ | Difference at 95.0% confidence | ||
+ | 258547 +/- 68356.2 | ||
+ | 15.1666% +/- 4.00984% | ||
+ | (Student' | ||
+ | </ | ||
+ | |||
+ | === hw.ix.rxd and hw.ix.txd === | ||
+ | |||
+ | What are the impact of modifying these limit on PPS? | ||
+ | |||
+ | < | ||
+ | x hw.ix.[r|t]xd=1024 | ||
+ | + hw.ix.[r|t]xd=2048 | ||
+ | * hw.ix.[r|t]xd=4096 | ||
+ | +--------------------------------------------------------------------------------+ | ||
+ | |+ * | ||
+ | | |____________________A________M__________|| | ||
+ | | | ||
+ | | |_____________________A______M_______________| | ||
+ | +--------------------------------------------------------------------------------+ | ||
+ | N | ||
+ | x | ||
+ | + | ||
+ | No difference proven at 95.0% confidence | ||
+ | * | ||
+ | No difference proven at 95.0% confidence | ||
+ | </ | ||
+ | |||
+ | => No difference | ||
+ | |||
+ | ===== Firewall impact ===== | ||
+ | |||
+ | One rule for each firewall and 2000 UDP " | ||
+ | ==== Graphs ==== | ||
+ | |||
+ | {{documentation: | ||
+ | |||
+ | Some translation of pps to throughput using [[https:// | ||
+ | | pps | Estimated Ethernet IMIX throughput | | ||
+ | | 1817242 | 5 Gb/s | | ||
+ | | 1228265 | 3,48 Gb/s | | ||
+ | Formula used: PPS * ( 7*(40+14) + 4*(576+14) + (1500+14) )/12*8 | ||
+ | ==== Ministat ==== | ||
+ | |||
+ | < | ||
+ | x pps.fastforwarding | ||
+ | + pps.ipfw-statefull | ||
+ | * pps.ipfw-stateless | ||
+ | % pps.pf-statefull | ||
+ | # pps.pf-stateless | ||
+ | +--------------------------------------------------------------------------------------------------+ | ||
+ | |# | ||
+ | | |_____A_M___| | | ||
+ | | |____A____| | ||
+ | | | ||
+ | | |_______A_M______| | ||
+ | | | ||
+ | +--------------------------------------------------------------------------------------------------+ | ||
+ | N | ||
+ | x | ||
+ | + | ||
+ | Difference at 95.0% confidence | ||
+ | -499511 +/- 68806.3 | ||
+ | -27.4873% +/- 3.7863% | ||
+ | (Student' | ||
+ | * | ||
+ | Difference at 95.0% confidence | ||
+ | -341673 +/- 54591.6 | ||
+ | -18.8017% +/- 3.00409% | ||
+ | (Student' | ||
+ | % | ||
+ | Difference at 95.0% confidence | ||
+ | -588978 +/- 92496.4 | ||
+ | -32.4105% +/- 5.08993% | ||
+ | (Student' | ||
+ | # | ||
+ | Difference at 95.0% confidence | ||
+ | -659151 +/- 101689 | ||
+ | -36.2721% +/- 5.5958% | ||
+ | (Student' | ||
+ | </ |
documentation/examples/forwarding_performance_lab_of_an_ibm_system_x3550_m3_with_10-gigabit_intel_x540-at2.txt · Last modified: 2015/07/03 22:20 by 127.0.0.1