I am using Moongen Traffic Generator for generating traffic and primary aim is to measure throughput,latency metrics by conducting Performance Tests as per RFC2544.
I have installed Moongen and able to generate cbr, poisson traffic from the getting started Moongen tutorial.
I had these questions while exploring the tool, could anyone please address these issues.
I ran the command:
root@aaf:/home/aaf/MoonGen# sudo ./moongen-simple start load-latency:0:1:rate=10Mp/s,time=3m
[INFO] Initializing DPDK. This will take a few seconds... EAL: Detected 48 lcore(s) EAL: No free hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: PCI device 0000:3b:00.0 on NUMA socket 0 EAL: probe driver: 8086:1528 net_ixgbe EAL: PCI device 0000:3b:00.1 on NUMA socket 0 EAL: probe driver: 8086:1528 net_ixgbe EAL: PCI device 0000:60:00.0 on NUMA socket 0 EAL: probe driver: 8086:37d1 net_i40e EAL: PCI device 0000:60:00.1 on NUMA socket 0 EAL: probe driver: 8086:37d1 net_i40e [INFO] Found 3 usable devices: Device 0: AC:1F:6B:AB:96:70 (Intel Corporation Ethernet Controller 10-Gigabit X540-AT2) Device 1: AC:1F:6B:AB:96:71 (Intel Corporation Ethernet Controller 10-Gigabit X540-AT2) Device 2: AC:1F:6B:6A:93:C4 (Intel Corporation Ethernet Connection X722 for 1GbE) [ERROR] 1 errors found while processing flow "load-latency". [WARN] Unknown option "time". [INFO] Flow load-latency => 0x1 PMD: ixgbe_dev_link_status_print(): Port 0: Link Down PMD: ixgbe_dev_link_status_print(): Port 1: Link Down [INFO] Waiting for devices to come up... [INFO] Device 1 (AC:1F:6B:AB:96:71) is up: 10000 MBit/s [INFO] Device 0 (AC:1F:6B:AB:96:70) is up: 10000 MBit/s [INFO] 2 devices are up. [Device: id=0] TX: 4.74 Mpps, 2579 Mbit/s (3337 Mbit/s with framing) [Device: id=1] RX: 4.74 Mpps, 2581 Mbit/s (3340 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.12 Mpps, 3328 Mbit/s (4307 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 5.99 Mpps, 3259 Mbit/s (4218 Mbit/s with framing) [Device: id=0] TX: 6.23 Mpps, 3390 Mbit/s (4387 Mbit/s with framing) [Device: id=1] RX: 6.31 Mpps, 3431 Mbit/s (4440 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.32 Mpps, 3439 Mbit/s (4450 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.37 Mpps, 3465 Mbit/s (4485 Mbit/s with framing) [Device: id=0] TX: 6.49 Mpps, 3532 Mbit/s (4571 Mbit/s with framing) [Device: id=1] RX: 6.49 Mpps, 3533 Mbit/s (4572 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.50 Mpps, 3537 Mbit/s (4577 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.48 Mpps, 3527 Mbit/s (4565 Mbit/s with framing) [Device: id=0] TX: 6.52 Mpps, 3545 Mbit/s (4587 Mbit/s with framing) [Device: id=1] RX: 6.50 Mpps, 3539 Mbit/s (4580 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.50 Mpps, 3539 Mbit/s (4579 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.51 Mpps, 3540 Mbit/s (4581 Mbit/s with framing) [Device: id=0] TX: 6.53 Mpps, 3553 Mbit/s (4598 Mbit/s with framing) [Device: id=1] RX: 6.52 Mpps, 3548 Mbit/s (4591 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.52 Mpps, 3545 Mbit/s (4587 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.53 Mpps, 3554 Mbit/s (4600 Mbit/s with framing) [Device: id=0] TX: 6.50 Mpps, 3536 Mbit/s (4577 Mbit/s with framing) [Device: id=1] RX: 6.49 Mpps, 3532 Mbit/s (4571 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.51 Mpps, 3542 Mbit/s (4583 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.50 Mpps, 3537 Mbit/s (4578 Mbit/s with framing) [Device: id=0] TX: 6.53 Mpps, 3553 Mbit/s (4598 Mbit/s with framing) [Device: id=1] RX: 6.53 Mpps, 3554 Mbit/s (4600 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.53 Mpps, 3552 Mbit/s (4597 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.52 Mpps, 3546 Mbit/s (4589 Mbit/s with framing) [Device: id=0] TX: 6.51 Mpps, 3543 Mbit/s (4584 Mbit/s with framing) [Device: id=1] RX: 6.52 Mpps, 3547 Mbit/s (4591 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.51 Mpps, 3540 Mbit/s (4581 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.50 Mpps, 3539 Mbit/s (4579 Mbit/s with framing) [Device: id=0] TX: 6.53 Mpps, 3554 Mbit/s (4600 Mbit/s with framing) [Device: id=1] RX: 6.53 Mpps, 3555 Mbit/s (4600 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.52 Mpps, 3548 Mbit/s (4592 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 6.54 Mpps, 3557 Mbit/s (4604 Mbit/s with framing) ^C[Flow: dev=0 uid=0x1] TX: 6.49 (StdDev 0.07) Mpps, 3530 (StdDev 37) Mbit/s (4569 Mbit/s with framing), total 60866568 packets with 4138926624 bytes (incl. CRC) [Flow: dev=1 uid=0x1] RX: 6.49 (StdDev 0.05) Mpps, 3533 (StdDev 29) Mbit/s (4572 Mbit/s with framing), total 60768272 packets with 4132242496 bytes (incl. CRC) [INFO] Saving histogram to './load-latency_1-0_1.csv' [Device: id=0] TX: 6.48 (StdDev 0.10) Mpps, 3526 (StdDev 56) Mbit/s (4563 Mbit/s with framing), total 60874728 packets with 4139644656 bytes (incl. CRC) [Device: id=1] RX: 6.49 (StdDev 0.08) Mpps, 3530 (StdDev 41) Mbit/s (4568 Mbit/s with framing), total 60874728 packets with 4139644656 bytes (incl. CRC)
And a load-latency_1-0_1.csv is generated after the test is run.
In this .csv file i am getting output as follows:
1974,1 1984,1 1990,1 1992,1 1993,1 1997,1 2000,1 2001,1 2003,1 2005,1 2009,4 2011,2 2012,1 2014,1 2015,1 2016,2 2017,1 2018,4 2019,1 2020,1 2021,4 2022,3 2023,5
Question1: Could you please help me in interpreting the output in this file(.csv file), what does the first column and second column signify? I am not able to interpret the output?
My presumption based on my analysis is it is timestamped values versus latency. What are the units of both these columns? Need some clarity on this
Question2: How to measure the throughput in Moongen? Why output while running traffic is in Mpps format? Even if i give say 10Mpps i am getting 6.38Mpps
[Device: id=0] TX: 4.74 Mpps, 2579 Mbit/s (3337 Mbit/s with framing) [Device: id=1] RX: 4.74 Mpps, 2581 Mbit/s (3340 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 6.12 Mpps, 3328 Mbit/s (4307 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 5.99 Mpps, 3259 Mbit/s (4218 Mbit/s with framing)
What does each of the fields signify? could you help me in interpreting this?
Question3: Where are all the possible changes to be made in lua scripts to measure latency and throughput? I am seeing a lot of lua files?
Question 4: In sample readme or Moongen CLI Interface examples you have specified ./moongen-simple - From where the files are being read to generate to .csv output. Since i am saw l2-load latency but not load-latency given as per simple examples in tutorial of Moongen.?
Question5: How application mix (IMIX) Traffic can be generated in Moongen? Could you mention the command to inject?