Why iperf instead of iperf3?



  • It seems that iperf3 is newer and has active development, while iperf development is dead.  Why does pfsense only display iperf in the webgui and not iperf3?

    I know I could install iperf3 with the pkg system, but the docs are pretty clear that messing with pkg can screw up pfsense's dependencies, so I want to avoid that and would prefer an official package that is installable through the pfsense webgui.

    Doc I'm referring to about pkg dependencies:
    https://doc.pfsense.org/index.php/Installing_FreeBSD_Packages

    Thank you.


  • Banned

    There are exactly zero dependency issues when installing from the pfSense repo.

    
    $ pkg search iperf3
    iperf3-3.1.4                   Improved tool to measure TCP and UDP bandwidth
    
    


  • The last time i used iperf3 it wasn't really production ready.
    This was about 6 months ago.
    Not sure what the state is today.

    If you just want to test throughput for a few seconds, sure go for it.

    Problems i had with iperf3:

    • Not able to run longer than 86400 seconds
    • Bursty traffic when setting a specific bandwidth with UDP instead of evenly distributed traffic.
    • Multiple streams result in no measurement results.

  • LAYER 8 Global Moderator

    in what scenario would you run iperf for anywhere close to  86400 seconds??  Your talking 24 hours..

    As to bursty traffic with udp.. That has not been my take at all.. We were using it to simulate voip traffic for a problem, and it worked great setting specific amount of bandwdith to use, etc..

    I use multiple streams with iperf3 all the time.. Works just fine..

    They should update the repo 3.1.5 been out for a week or so..



  • Longterm testing for the stability of wireless links.
    If you want to know how the channel changes over a week or longer dependent on weather you kind of want to leave it running ;)

    Regarding the burstiness:
    If you have a 100Mbit link and you send 1Mbit of udp traffic at 1kpps
    These 1k frames will be sent immediately at the beginning of the second.
    –> You have 100Mbit of traffic for 10ms.
    What we expected (and what iperf2 does) is 1 frame every 1ms.
    --> constant traffic of 1Mbit.

    The multiple streams was probably just a problem of displaying the results on stdout since i saw the different streams with wireshark.
    However i don't really want to leave wireshark running for a week or longer only then to have to analyze the results manually.


  • LAYER 8 Global Moderator

    I will have to look to the 1k frames at the beginning of the second thing..  As to multiple streams.

    Are you talking with udp or tcp?



  • @johnpoz:

    As to bursty traffic with udp.. That has not been my take at all.. We were using it to simulate voip traffic for a problem, and it worked great setting specific amount of bandwdith to use, etc..

    In short, iPerf3 uses a 1 second timer. If you want to emulate 10Mb/s on a 10Gb/s link, it sends 10Gb/s for 1ms, then is idle for the other 999ms. The below git repo changed the resolution to 1ms, so it should only burst 10Gb/s for 0.001ms 1000 times per second. Much smoother.

    http://burntchrome.blogspot.com/2016/09/iperf3-and-microbursts.html
    https://github.com/woody77/iperf



  • @johnpoz:

    I will have to look to the 1k frames at the beginning of the second thing..  As to multiple streams.

    Are you talking with udp or tcp?

    TCP. We run it with -i 1which is what i guess causes the problem. Running with -i 5 shows the output correctly.


Log in to reply