Thursday, August 29, 2013

Tuning Iperf Test Results


As mentioned above iPerf uses many parameters to control TCP and UDP functions during a test. The following paragraph will show a methodology that was used with one of our customers.

Here is the scenario:

·         2 sites
·         Sites connected through one 50Mbps EVPL EVC
·         PCs were used at each end with no other devices using the link

Parameters used:

·         TCP window size
·         Number of concurrent TCP sessions
·         MTU size

General steps:

·         Step 1 iPerf used with default settings
·         Step 2 to step 6 TCP window size was modified until optimal throughput was achieved
·         Step 7 to step 21 Number of TCP sessions was modified until optimal throughput was achieved
·         Step 22 MTU size was modified until optimal throughput was achieved



Detailed steps along with results at each step: (again based on 50Mbps EVC)

Step 1:

Server PC command line = iperf s

Client PC command line = iperf c (ip address of server)

Result achieved = 2.68Mbps throughput



Step 2: ( for this step use optimal window size based on calculation à bandwidth * delay)

Calculation for 50Mbps and 30m/s round trip delay = 50,000,000 * 0.030 = 1,500,000 / 8 bits = 187,500 / 1000 = 187.5 kBytes (we used 190 kBytes as our first window size)

Server PC command line = iperf s w 190k

Client PC command line = iperf c (ip address of server) w 190k

Result achieved = 13.8Mbps throughput



Step 3:

Server PC command line = iperf s w 90k

Client PC command line = iperf c (ip address of server) w 90k

Result achieved = 13.5Mbps throughput


Step 4:

Server PC command line = iperf s w 290k

Client PC command line = iperf c (ip address of server) w 290k

Result achieved = 14.8Mbps throughput  
BEST RESULT FOR TCP WINDOW VARIATION


Step 5:

Server PC command line = iperf s w 1000k

Client PC command line = iperf c (ip address of server) w 1000k

Result achieved = 12.9Mbps throughput


Step 6:

Server PC command line = iperf s w 500k

Client PC command line = iperf c (ip address of server) w 500k

Result achieved = 13.0Mbps throughput


Step 7:

Now we varied the amount of sessions. We kept the optimal 290kByte window size.

Server PC command line = iperf s w 290k P 2

Client PC command line = iperf c (ip address of server) w 290k P 2

Result achieved =          Session #1 15.2Mbps throughput
                                    Session #2 6.18Mbps throughput
                                    Total throughput = 20.8Mbps                              


Step 8:

Server PC command line = iperf s w 290k P 3

Client PC command line = iperf c (ip address of server) w 290k P 3

Result achieved =          Session #1 8.12Mbps throughput
                                    Session #2 8.92Mbps throughput
                                    Session #3 6.18Mbps throughput
                                    Total throughput = 22.5Mbps


Step 9:

Server PC command line = iperf s w 290k P 4

Client PC command line = iperf c (ip address of server) w 290k P 4

Result achieved =          Session #1 11.1Mbps throughput
                                    Session #2 5.81Mbps throughput
                                    Session #3 11.0Mbps throughput
                                    Session #4 6.75Mbps throughput
                                    Total throughput = 33.9Mbps


Step 10:

Server PC command line = iperf s w 290k P 5

Client PC command line = iperf c (ip address of server) w 290k P 5

Result achieved =          Total throughput = 43.4Mbps (from this point only total throughput is shown)

Step 11:

Server PC command line = iperf s w 290k P 6

Client PC command line = iperf c (ip address of server) w 290k P 6

Result achieved =          Total throughput = 42.8Mbps


Step 12:

Server PC command line = iperf s w 290k P 7

Client PC command line = iperf c (ip address of server) w 290k P 7

Result achieved =          Total throughput = 43.5Mbps


Step 13:

Server PC command line = iperf s w 290k P 8

Client PC command line = iperf c (ip address of server) w 290k P 8

Result achieved =          Total throughput = 45Mbps


Step 14:

Server PC command line = iperf s w 290k P 9

Client PC command line = iperf c (ip address of server) w 290k P 9

Result achieved =          Total throughput = 43.6Mbps


Step 15:

Server PC command line = iperf s w 290k P 10

Client PC command line = iperf c (ip address of server) w 290k P 10

Result achieved =          Total throughput = 44.8Mbps


Step 16:

Server PC command line = iperf s w 290k P 11

Client PC command line = iperf c (ip address of server) w 290k P 11

Result achieved =          Total throughput = 45.4Mbps


Step 17:

Server PC command line = iperf s w 290k P 12

Client PC command line = iperf c (ip address of server) w 290k P 12

Result achieved =          Total throughput = 47.1Mbps
BEST RESULT FOR NUMBER OF TCP WINDOWS  VARIATION


Step 18:

Server PC command line = iperf s w 290k P 13

Client PC command line = iperf c (ip address of server) w 290k P 13

Result achieved =          Total throughput = 44.5Mbps


Step 19:

Server PC command line = iperf s w 290k P 14

Client PC command line = iperf c (ip address of server) w 290k P 14

Result achieved =          Total throughput = 47.1Mbps
EQUAL TO PREVIOUS BEST RESULT FOR NUMBER OF TCP WINDOWS  VARIATION


Step 20:

Server PC command line = iperf s w 290k P 15

Client PC command line = iperf c (ip address of server) w 290k P 15

Result achieved =          Total throughput = 46.7Mbps


Step 21:

Server PC command line = iperf s w 290k P 16

Client PC command line = iperf c (ip address of server) w 290k P 16

Result achieved =          Total throughput = 46.1Mbps


Step 22:

At this point we can changed the MTU size

No comments: