Experiment on Oct 6
 

Conclusion: 1. linux kernel 2.4.10 is much faster than kernel 2.2.16-22 in ip forwarding

            2. 3com card is a little faster than DEC Tulip
 

To get a pure text version of experiment data page, see here


Dublin and prague are running kernel 2.4.10
(NOTE: This time, the tulip card driver is built into kernel directly )

madrid is running kernel 2.2.16

 



Strange things:

When I boot kernel 2.2.16-22, the Ethernet interfaces information:
3Com:eth0   tulip1:eth1      tulip2:eth2

When I boot kernel 2.4.10, the Ethernet interfaces information:
tulip1:eth0 tulip2: eth1      3Com:eth2


What's going on here?????? How can I bind 3Com to eth0 permanently????


 

Routing Experiment 2 on Kernel 2.4.10
NICs involved in routing 3Com + Tulip Tulip + Tulip
  1st 2nd 3rd 4th 5th 6th 7th AVG
Trans Speed (KB/sec) 7506.90 7822.8 7644.09 7818.16 7866.14 7804.45 7752.20 7744.963
Recv Speed (KB/sec) 7469.57 7795.41 7630.09 7806.88 7855.23 7793.61 7760.29 7730.154
Data Sent   (Byte) 16777216 16777216 16777216 16777216 16777216 16777216 16777216  




 

Routing Experiment 2 on Kernel 2.2.16-22

  1st 2nd 3rd AVG
Trans Speed (KB/sec) 252.78 251.84 250.85 251.8233
Recv Speed (KB/sec) 251.92 251.07 250.02 251.0033
Data Sent   (Byte) 16777216 16777216 16777216  


From the above data and the data from last week, we can conclude that:

 

linux kernel 2.4.10 is much faster than kernel 2.2.16-22 in ip forwarding

 

 

 

 

 

 

For the experiment data detail, see the following:

 



=================================================================
Experiment 1:

[lin@prague ttcp]$ ttcp -r -s
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from 192.168.3.1
ttcp-r: 16777216 bytes in 1.44 real seconds = 11370.92 KB/sec +++
ttcp-r: 12285 I/O calls, msec/call = 0.12, calls/sec = 8526.11
ttcp-r: 0.0user 0.2sys 0:01real 18% 0i+0d 0maxrss 0+1pf 0+0csw


[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.3.2 < nttcp-1.47.tar.gz
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.3.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 1.43 real seconds = 11460.60 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1432.58
ttcp-t: 0.0user 0.0sys 0:01real 4% 0i+0d 0maxrss 0+2pf 0+0csw



=================================================================
Experiment 2:


[lin@prague ttcp]$ ttcp -r -s
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from 192.168.1.2
ttcp-r: 16777216 bytes in 2.19 real seconds = 7469.57 KB/sec +++
ttcp-r: 12285 I/O calls, msec/call = 0.18, calls/sec = 5600.81
ttcp-r: 0.0user 0.1sys 0:02real 9% 0i+0d 0maxrss 0+1pf 0+0csw



[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 2.18 real seconds = 7506.90 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 1.09, calls/sec = 938.36
ttcp-t: 0.0user 0.1sys 0:02real 4% 0i+0d 0maxrss 0+2pf 0+0csw



=================================================================
Experiment 3. USING SWITCH

[lin@prague ttcp]$ ttcp -r -s
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from 132.177.8.27
ttcp-r: 16777216 bytes in 1.96 real seconds = 8374.19 KB/sec +++
ttcp-r: 12246 I/O calls, msec/call = 0.16, calls/sec = 6259.18
ttcp-r: 0.0user 0.2sys 0:01real 11% 0i+0d 0maxrss 0+2pf 0+0csw


[lin@madrid lin]$ ttcp/ttcp -t -s 132.177.8.29 < nttcp-1.47.tar.gz
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 132.177.8.29
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 1.95 real seconds = 8407.53 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.97, calls/sec = 1050.94
ttcp-t: 0.0user 0.2sys 0:01real 13% 0i+0d 0maxrss 0+2pf 0+0csw


From the above 3 experiments:

We found the networking speed improves significantly, compared to last week's experiment which is running kernel 2.2.16-22 on Dublin



The possible reason may be:

1. Dublin is using new Kernel 2.4.10 which may improve its routing algorithm or something


   To test this assumption, reboot prague.cs.unh.edu to kernel 2.2.16 , which
   means the end computers are the same as those in last week's experiment.

   Do the same experiment 2  for 3 times
   ============================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 2.10 real seconds = 7795.41 KB/sec +++
   ttcp-r: 11672 I/O calls, msec/call = 0.18, calls/sec = 5553.47
   ttcp-r: 0.0user 0.0sys 0:02real 1% 0i+0d 0maxrss 0+2pf 0+0csw

   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 2.09 real seconds = 7822.83 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 1.05, calls/sec = 977.85
   ttcp-t: 0.0user 0.0sys 0:02real 2% 0i+0d 0maxrss 0+2pf 0+0csw
   ============================================================


   ============================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 2.15 real seconds = 7630.09 KB/sec +++
   ttcp-r: 11689 I/O calls, msec/call = 0.19, calls/sec = 5443.61
   ttcp-r: 0.0user 0.0sys 0:02real 1% 0i+0d 0maxrss 0+1pf 0+0csw

   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 2.14 real seconds = 7644.09 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 1.07, calls/sec = 955.51
   ttcp-t: 0.0user 0.0sys 0:02real 2% 0i+0d 0maxrss 0+2pf 0+0csw
   ============================================================


   ============================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 2.10 real seconds = 7806.88 KB/sec +++
   ttcp-r: 11681 I/O calls, msec/call = 0.18, calls/sec = 5565.92
   ttcp-r: 0.0user 0.0sys 0:02real 0% 0i+0d 0maxrss 0+2pf 0+0csw


   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 2.10 real seconds = 7818.16 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 1.05, calls/sec = 977.27
   ttcp-t: 0.0user 0.0sys 0:02real 2% 0i+0d 0maxrss 0+2pf 0+0csw
   ============================================================

   HERE we see that :
   if the 3COM card is in the same speed as tulip card,

         the new kernel 2.4.10 DOES improve the routing speed significantly
          ( 7818.16 KB/sec +++    VS    230KB/sec ++++ ===> 34:1 )

   We still need to remove the possibility that this improvement is brought by the speed difference of 3COM card and tulip card.


   In the following 3 experiments. We change NIC setting on dublin. USE tulip
   card as NIC involed in static routing between 192.168.1.0 and 192.168.2.0



   Do experiment 2 for 3 times
   ==========================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 2.09 real seconds = 7855.23 KB/sec +++
   ttcp-r: 11695 I/O calls, msec/call = 0.18, calls/sec = 5607.11
   ttcp-r: 0.0user 0.0sys 0:02real 3% 0i+0d 0maxrss 0+1pf 0+0csw


   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 2.08 real seconds = 7866.14 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 1.04, calls/sec = 983.27
   ttcp-t: 0.0user 0.0sys 0:02real 3% 0i+0d 0maxrss 0+2pf 0+0csw
   ==========================================================



   ==========================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 2.10 real seconds = 7793.61 KB/sec +++
   ttcp-r: 11729 I/O calls, msec/call = 0.18, calls/sec = 5579.30
   ttcp-r: 0.0user 0.0sys 0:02real 2% 0i+0d 0maxrss 0+1pf 0+0csw

   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 2.10 real seconds = 7804.45 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 1.05, calls/sec = 975.56
   ttcp-t: 0.0user 0.1sys 0:02real 4% 0i+0d 0maxrss 0+2pf 0+0csw
   ==========================================================


   ==========================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 2.11 real seconds = 7752.20 KB/sec +++
   ttcp-r: 11703 I/O calls, msec/call = 0.18, calls/sec = 5537.35
   ttcp-r: 0.0user 0.0sys 0:02real 4% 0i+0d 0maxrss 0+1pf 0+0csw

   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 2.11 real seconds = 7760.29 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 1.06, calls/sec = 970.04
   ttcp-t: 0.0user 0.0sys 0:02real 4% 0i+0d 0maxrss 0+2pf 0+0csw
   ==========================================================

   In the above 3 experiment, on Dublin the NIC cards involved in routing are 2 tulip cards.

  

   Hence, we can draw a conclusion that:

   Kernel 2.4.10 is significantly faster than kernel 2.2.16-22 on static routing

   Reboot Dublin to 2.2.16-22 to prove that.


   Do experiments 2 for 3 times
   =================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 65.04 real seconds = 251.92 KB/sec +++
   ttcp-r: 5154 I/O calls, msec/call = 12.92, calls/sec = 79.25
   ttcp-r: 0.0user 0.0sys 1:05real 0% 0i+0d 0maxrss 0+2pf 0+0csw

   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 64.82 real seconds = 252.78 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 32.41, calls/sec = 31.60
   ttcp-t: 0.0user 0.0sys 1:04real 0% 0i+0d 0maxrss 0+2pf 0+0csw
   =================================================



   =================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 65.26 real seconds = 251.07 KB/sec +++
   ttcp-r: 5164 I/O calls, msec/call = 12.94, calls/sec = 79.13
   ttcp-r: 0.0user 0.0sys 1:05real 0% 0i+0d 0maxrss 0+2pf 0+0csw

   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 65.06 real seconds = 251.84 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 32.53, calls/sec = 31.48
   ttcp-t: 0.0user 0.0sys 1:05real 0% 0i+0d 0maxrss 0+2pf 0+0csw
   =================================================



   =================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 192.168.1.2
   ttcp-r: 16777216 bytes in 65.53 real seconds = 250.02 KB/sec +++
   ttcp-r: 5157 I/O calls, msec/call = 13.01, calls/sec = 78.70
   ttcp-r: 0.0user 0.0sys 1:05real 0% 0i+0d 0maxrss 0+2pf 0+0csw

   [lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 65.31 real seconds = 250.85 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 32.66, calls/sec = 31.36
   ttcp-t: 0.0user 0.0sys 1:05real 0% 0i+0d 0maxrss 0+2pf 0+0csw
   =================================================

   So kernel 2.4.10 is  much faster than kernel 2.2.16
     

3. From experiment 3

    madrid:eth0( 3 COM ) <===> prague:eth0( tulip ),
   we see that tulip seems slower then COM.( compared to last week experiment
   which is  3COM <====> 3COM.  8407.53 KB/sec VS 11461.40 KB/sec +++)
   To test this assumption, reboot Prague to kernel 2.2.16 which will use 3COM
   as eth0. Re-do experiment 3 to see the speed.

      Do the same experiment 3 for 3 times
   ===================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 132.177.8.27
   ttcp-r: 16777216 bytes in 1.44 real seconds = 11409.07 KB/sec +++
   ttcp-r: 12275 I/O calls, msec/call = 0.12, calls/sec = 8547.75
   ttcp-r: 0.0user 0.2sys 0:01real 18% 0i+0d 0maxrss 0+1pf 0+0csw


   [lin@madrid lin]$ ttcp/ttcp -t -s 132.177.8.29 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192,nbuf=2048, align=16384/0, port=5001  tcp  -> 132.177.8.29
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 1.43 real seconds = 11448.47 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 0.72, calls/sec = 1431.06
   ttcp-t: 0.0user 0.3sys 0:01real 26% 0i+0d 0maxrss 0+2pf 0+0csw
   ===================================================


   ===================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 132.177.8.27
   ttcp-r: 16777216 bytes in 1.44 real seconds = 11395.89 KB/sec +++
   ttcp-r: 12245 I/O calls, msec/call = 0.12, calls/sec = 8517.01
   ttcp-r: 0.0user 0.1sys 0:01real 11% 0i+0d 0maxrss 0+2pf 0+0csw


   [lin@madrid lin]$ ttcp/ttcp -t -s 132.177.8.29 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192,nbuf=2048, align=16384/0, port=5001  tcp  -> 132.177.8.29
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 1.43 real seconds = 11454.46 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 0.72, calls/sec = 1431.81
   ttcp-t: 0.0user 0.3sys 0:01real 21% 0i+0d 0maxrss 0+2pf 0+0csw
   ===================================================

   ===================================================
   [lin@prague ttcp]$ ttcp -r -s
   ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
   ttcp-r: socket
   ttcp-r: accept from 132.177.8.27
   ttcp-r: 16777216 bytes in 1.44 real seconds = 11413.35 KB/sec +++
   ttcp-r: 12284 I/O calls, msec/call = 0.12, calls/sec = 8557.23
   ttcp-r: 0.0user 0.1sys 0:01real 13% 0i+0d 0maxrss 0+1pf 0+0csw


   [lin@madrid lin]$ ttcp/ttcp -t -s 132.177.8.29 < nttcp-1.47.tar.gz
   ttcp-t: buflen=8192,nbuf=2048, align=16384/0, port=5001  tcp  -> 132.177.8.29
   ttcp-t: socket
   ttcp-t: connect
   ttcp-t: 16777216 bytes in 1.43 real seconds = 11453.28 KB/sec +++
   ttcp-t: 2048 I/O calls, msec/call = 0.72, calls/sec = 1431.66
   ttcp-t: 0.0user 0.5sys 0:01real 39% 0i+0d 0maxrss 0+2pf 0+0csw
   ===================================================

   HERE we do see that 3COM <===> 3COM is a little faster than 3COM <==> tulip
  
   To draw the conclusion, we need  more experiments