[[Include(WikiToC)]] == Measuring Network Performance == This wiki page contains the tutorial of measuring network performance. Authors: Artur Minakhmetov, Telecom Paris : artur.minakhmetov[at]telecom-paris.fr\\ Michael Sherman, Rutgers University : msherman[at]winlab.rutgers.edu Last Updated: 26 June 2019 ---- = Description = Cosmos test-bed provides a set of different network interfaces with different speed and rates. In this tutorial we will show how to measure the network performance. ---- = Context = This tutorial is based on topology and settings described in the [wiki:tutorials/optical-network-example optical network tutorial]. This example includes a server ''srv4-lg1'' with connected to it ''tengigabitethernet 1/34'' and joined with ''twentyFiveGigE 1/1/4'' on ''vlan 124''. Binding ''tengigabitethernet 1/32'' with ''twentyFiveGigE 1/1/4'' is performed the same way as in the optical network tutorial. The server ''srv4-lg1'' has an IP address assigned to it 192.168.1.4 on ''eno1'' interface. For simplicity, the Calient Switch S320 connects ''tengigabitethernet 1/34'' with ''tengigabitethernet 1/32/1'' through direct optical connection: ''5.7.4<-->5.7.6'' ---- = Measurement = Measurements are preformed through a command line tool ''iperf''. Examples and descriptions of its operation could be found [https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/ here]. * Set ''srv1-lg1'' as a server: {{{ native@srv1-lg1:~$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) }}} * Set ''srv4-lg1'' as a client with sending traffic to ''srv1-lg1'': {{{ native@srv4-lg1:~$ iperf -c 192.168.1.1 ------------------------------------------------------------ Client connecting to 192.168.1.1, TCP port 5001 TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.1.4 port 35486 connected with 192.168.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 11.0 GBytes 9.42 Gbits/sec }}} * This measurement shows that the it's possible to have **9.42 Gbits/sec** of bandwidth. * Previous measurement creates a ''TCP'' connection. In order to test ''UDP'' traffic, a bitrate of ''UDP'' traffic has to be specified through and option ''-b''. UDP traffic is specified through an option ''-u''. Results of ''UDP'' traffic test are below : Server side: {{{ native@srv1-lg1:~$ iperf -s -u ------------------------------------------------------------ Server listening on UDP port 5001 Receiving 1470 byte datagrams UDP buffer size: 208 KByte (default) ------------------------------------------------------------ }}} Client side: {{{ native@srv4-lg1:~$ iperf -c 192.168.1.1 -u -b 9gbps ------------------------------------------------------------ Client connecting to 192.168.1.1, UDP port 5001 Sending 1470 byte datagrams, IPG target: 1.31 us (kalman adjust) UDP buffer size: 208 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.1.4 port 33737 connected with 192.168.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 9.77 GBytes 8.39 Gbits/sec [ 3] Sent 7134255 datagrams [ 3] Server Report: [ 3] 0.0-10.0 sec 9.30 GBytes 7.99 Gbits/sec 0.000 ms 342498/7134255 (0%) }}} * UDP traffic measurements show possible bandwidth of **7.99 Gbits/sec**. This result could be ameliorated through specific settings potentially. ---- = Conclusion = In this tutorial we showed how it's possible to measure network performance and verify 10Gbit possibilities of optical transceivers achieving **9.42 Gbits/sec** for ''TCP'' traffic and **7.99 Gbits/sec** for ''UDP'' traffic.