Network performance

From RARFORGE
Jump to: navigation, search


Contents

Linux

Iperf

Server

# TCP
]# iperf -s
# UDP
]# iperf -s -u

Client

# TCP
]# iperf -c [server ip]
# UDP
# you must include -b to set the bandwith of the link. Defaul is 1mbps
]# iperf -c [server ip] -b 1000M



Examples

# SERVER (10.69.1.254)
]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
# CLIENT
]# iperf -c 10.69.1.254
------------------------------------------------------------                                                                                                                                                      
Client connecting to 10.69.1.254, TCP port 5001                                                                                                                                                                      
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.250 port 34117 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec


# SERVER (10.69.1.254)
]# iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  224 KByte (default)
------------------------------------------------------------
# CLIENT
# iperf -u -c 10.69.1.254 -t 10 -b 1000M
------------------------------------------------------------
Client connecting to 10.69.1.254, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  224 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.250 port 60912 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   972 MBytes   815 Mbits/sec
[  3] Sent 693385 datagrams




Bonding Example (2 gigabit)

'LACP 802.1ad' (mode=4)
linux - ifcfg-bond0: BONDING_OPTS="miimon=100 mode=4 lacp_rate=1 xmit_hash_policy=1"
  • Open 4 terminals
    • two connected to server host (hopstore)
    • two connected to client host (blindpig)

Results


Same Client IP / Server Port

  • set server to listen on port 5001
  • the other two terminal (on client)
    • connect to port 5001 at the same time

Expected This *should only achieve 1gbps - obviously this will for sure because I only have the client plugged in at gigabit

#CLIENT 1
root@blindpig:~# iperf -c 10.69.1.254  -p 5001
------------------------------------------------------------
Client connecting to 10.69.1.254, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.250 port 50731 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   613 MBytes   514 Mbits/sec
#CLIENT 2
root@blindpig:~# iperf -c 10.69.1.254 -p 5001
------------------------------------------------------------
Client connecting to 10.69.1.254, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.250 port 50732 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   589 MBytes   494 Mbits/sec
# SERVER
[root@hopstore foo]# iperf -s -p 5001
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  6] local 10.69.1.254 port 5001 connected with 10.69.1.250 port 50731
[  4] local 10.69.1.254 port 5001 connected with 10.69.1.250 port 50732
[  6]  0.0-10.1 sec   613 MBytes   511 Mbits/sec
[  4]  0.0-10.7 sec   589 MBytes   460 Mbits/sec
[SUM]  0.0-10.7 sec  1.17 GBytes   939 Mbits/sec




Same Client IP / DIFFERENT Server Port

  • set server to listen on port 5001
  • set server to listen on port 6001
  • the other two terminalS (on client)
    • connect CLIENT 1 to port 5001 (at the same time)
    • connect CLIENT 1 to port 6001 (at the same time)

Expected This *should achieve 2gbps - obviously this will NOT ( I need to plug a client in bonded first)

  • TO Test SOON



Different Client IP / SAME Server Port

  • set server to listen on port 5001
  • the other two terminal (on client)
    • connect CLIENT 1 to port 5001
    • connect CLIENT 2 to port 5001

Expected 2gbps Total (1gbps per client). It does, both clients could get ~940mbps

#CLIENT 1
root@blindpig:~# iperf -c 10.69.1.254  -p 5001
------------------------------------------------------------
Client connecting to 10.69.1.254, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.250 port 50762 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   940 Mbits/sec
#CLIENT 2
root@bigeye:~# iperf -c 10.69.1.254 -p 5001
------------------------------------------------------------
Client connecting to 10.69.1.254, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.253 port 56929 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec
# SERVER1
[root@hopstore foo]# iperf -s -p 5001
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 10.69.1.254 port 5001 connected with 10.69.1.253 port 56929
[  5] local 10.69.1.254 port 5001 connected with 10.69.1.250 port 50762
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.10 GBytes   939 Mbits/sec
[  5]  0.0-10.0 sec  1.10 GBytes   938 Mbits/sec



Different Client IP / DIFFERENT Server Port

  • set server to listen on port 5001 and 6001
  • the other two terminal (on client)
    • connect CLIENT 1 to port 5001
    • connect CLIENT 2 to port 6001

Expected 2gbps Total (1gbps per client). It does, both clients could get ~940mbps

#CLIENT 1
root@blindpig:~# iperf -c 10.69.1.254  -p 5001
------------------------------------------------------------
Client connecting to 10.69.1.254, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.250 port 50748 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec
#CLIENT 2
root@bigeye:~# iperf -c 10.69.1.254 -p 6001
------------------------------------------------------------
Client connecting to 10.69.1.254, TCP port 6001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 10.69.1.253 port 34171 connected with 10.69.1.254 port 6001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec
# SERVER1
[root@hopstore foo]# iperf -s -p 5001
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 10.69.1.254 port 5001 connected with 10.69.1.250 port 50748
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.10 GBytes   938 Mbits/sec
# SERVER2
[root@hopstore ~]# iperf -s -p 6001
------------------------------------------------------------
Server listening on TCP port 6001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 10.69.1.254 port 6001 connected with 10.69.1.253 port 34171
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.10 GBytes   939 Mbits/sec



Addition Info


  • Iperf client only runs one thread. To get a better real world result, set the client to run with more threads. This can be used in UDP or TCP mode. As you notice above, I was only able to achieve 815mbps with udp testing. Enable 20 threads at 100mbps, I can now achieve 954mpbs.
## set 10 threads
#] iperf -c 10.69.1.250 -P 10
# iperf -u -c 10.69.1.254 -t 10 -b 100M -P 20
------------------------------------------------------------
Client connecting to 10.69.1.254, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  224 KByte (default)
------------------------------------------------------------
[ 22] local 10.69.1.250 port 54270 connected with 10.69.1.254 port 5001
[  3] local 10.69.1.250 port 43703 connected with 10.69.1.254 port 5001
[  6] local 10.69.1.250 port 41342 connected with 10.69.1.254 port 5001
[  5] local 10.69.1.250 port 47863 connected with 10.69.1.254 port 5001
[  4] local 10.69.1.250 port 45683 connected with 10.69.1.254 port 5001
[  7] local 10.69.1.250 port 53533 connected with 10.69.1.254 port 5001
[ 10] local 10.69.1.250 port 58435 connected with 10.69.1.254 port 5001
[  8] local 10.69.1.250 port 34540 connected with 10.69.1.254 port 5001
[  9] local 10.69.1.250 port 51102 connected with 10.69.1.254 port 5001
[ 11] local 10.69.1.250 port 52498 connected with 10.69.1.254 port 5001
[ 12] local 10.69.1.250 port 42381 connected with 10.69.1.254 port 5001
[ 15] local 10.69.1.250 port 57701 connected with 10.69.1.254 port 5001
[ 13] local 10.69.1.250 port 60505 connected with 10.69.1.254 port 5001
[ 14] local 10.69.1.250 port 33364 connected with 10.69.1.254 port 5001
[ 16] local 10.69.1.250 port 36105 connected with 10.69.1.254 port 5001
[ 17] local 10.69.1.250 port 37829 connected with 10.69.1.254 port 5001
[ 18] local 10.69.1.250 port 43117 connected with 10.69.1.254 port 5001
[ 19] local 10.69.1.250 port 54920 connected with 10.69.1.254 port 5001
[ 20] local 10.69.1.250 port 38253 connected with 10.69.1.254 port 5001
[ 21] local 10.69.1.250 port 48120 connected with 10.69.1.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  6]  0.0-10.0 sec  56.9 MBytes  47.7 Mbits/sec
[  6] Sent 40575 datagrams
[  9]  0.0-10.0 sec  57.0 MBytes  47.8 Mbits/sec
[  9] Sent 40672 datagrams
[ 15]  0.0-10.0 sec  57.1 MBytes  47.9 Mbits/sec
[ 15] Sent 40729 datagrams
[ 14]  0.0-10.0 sec  56.8 MBytes  47.7 Mbits/sec
[ 14] Sent 40550 datagrams
[ 17]  0.0-10.0 sec  57.1 MBytes  47.9 Mbits/sec
[ 17] Sent 40730 datagrams
[ 19]  0.0-10.0 sec  56.9 MBytes  47.8 Mbits/sec
[ 19] Sent 40618 datagrams
[ 20]  0.0-10.0 sec  56.7 MBytes  47.6 Mbits/sec
[ 20] Sent 40457 datagrams
[  5]  0.0-10.0 sec  57.1 MBytes  47.8 Mbits/sec
[  5] Sent 40695 datagrams
[  4]  0.0-10.0 sec  57.1 MBytes  47.9 Mbits/sec
[  4] Sent 40750 datagrams
[ 10]  0.0-10.0 sec  57.1 MBytes  47.8 Mbits/sec
[ 10] Sent 40724 datagrams
[ 18]  0.0-10.0 sec  56.9 MBytes  47.7 Mbits/sec
[ 18] Sent 40570 datagrams
[ 21]  0.0-10.0 sec  57.0 MBytes  47.8 Mbits/sec
[ 21] Sent 40680 datagrams
[ 22]  0.0-10.0 sec  57.0 MBytes  47.7 Mbits/sec
[ 22] Sent 40653 datagrams
[  3]  0.0-10.0 sec  57.0 MBytes  47.7 Mbits/sec
[  3] Sent 40638 datagrams
[  7]  0.0-10.0 sec  57.0 MBytes  47.7 Mbits/sec
[  7] Sent 40627 datagrams
[  8]  0.0-10.0 sec  56.9 MBytes  47.7 Mbits/sec
[  8] Sent 40622 datagrams
[ 11]  0.0-10.0 sec  57.0 MBytes  47.7 Mbits/sec
[ 11] Sent 40651 datagrams
[ 12]  0.0-10.0 sec  57.1 MBytes  47.9 Mbits/sec
[ 12] Sent 40766 datagrams
[ 13]  0.0-10.0 sec  56.9 MBytes  47.6 Mbits/sec
[ 13] Sent 40571 datagrams
[ 16]  0.0-10.0 sec  56.9 MBytes  47.7 Mbits/sec
[ 16] Sent 40595 datagrams
[SUM]  0.0-10.0 sec  1.11 GBytes   954 Mbits/sec
Personal tools
Namespaces

Variants
Views
Actions
Navigation
Toolbox