Experiment on oct8 kernel 2.2.16

 

since the experiment today ( OCT8 ) on "kernel 2.4.10 with Tulip NIC compiled as module"
overrun yesterday's conclusion:

Kernel 2.4.10 with NIC driver compiled in directly is much faster in ip routing
than kernel with NIC driver compiled as module. ( 2:1 )



Now we do experiments on kernel 2.2.16-22 again to see whether the conclusion still holds.

Kernel 2.4.10 is much faster in ip routing than kernel 2.2.16-22 ( 34:1 )

 

 

Experiment 2 on kernel 2.2.16 ip routing
  1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th  AVG
Trans Speed (KB/sec) 11540.43 11542.07 11539.74 11542.15 11541.98 11542.04 11493.60 11492.88 11494.89 11495.49 11492.87 11493.22 11549.62 11520.08
Recv Speed (KB/sec) 11481.36 11482.92 11482.05 11483.06 11482.84 11482.84 11486.22 11486.24 11486.23 11486.25 11486.21 11486.05 11481.40 11484.13
Data Sent   (Byte) 16777216 16777216 16777216 16777216 16777216 16777216 124835840 124835840 124835840 124835840 124835840 124835840 16777216  

 


The above data is much much faster than the data we got on Oct6 and the data from last week, This shows that the conclusion we made on Oct6 is not right.

 

Kernel 2.2.16-22 is almost as fast as kernel 2.4.10 in ip routing

 

 

What's going on here???

 

 

 

 

For the detailed experiment data, please see the following:

 

Reboot Dublin to kernel 2.2.16-22



do experiment 2


[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < linux-2.4.10.tar
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 1.42 real seconds = 11540.43 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1442.55
ttcp-t: 0.0user 0.0sys 0:01real 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 1.43 real seconds = 11481.36 KB/sec +++
ttcp-r: 11588 I/O calls, msec/call = 0.13, calls/sec = 8120.48
ttcp-r: 0.0user 0.1sys 0:01real 10% 0i+0d 0maxrss 0+1pf 0+0csw



Experiment 2

[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < linux-2.4.10.tar
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 1.42 real seconds = 11542.07 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1442.76
ttcp-t: 0.0user 0.0sys 0:01real 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 1.43 real seconds = 11482.92 KB/sec +++
ttcp-r: 11588 I/O calls, msec/call = 0.13, calls/sec = 8121.59
ttcp-r: 0.0user 0.1sys 0:01real 9% 0i+0d 0maxrss 0+1pf 0+0csw




Experiment 2

[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < linux-2.4.10.tar
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 1.42 real seconds = 11539.74 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1442.47
ttcp-t: 0.0user 0.0sys 0:01real 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 1.43 real seconds = 11482.05 KB/sec +++
ttcp-r: 11587 I/O calls, msec/call = 0.13, calls/sec = 8120.27
ttcp-r: 0.0user 0.3sys 0:01real 21% 0i+0d 0maxrss 0+1pf 0+0csw


Experiment 2

[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < linux-2.4.10.tar
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 1.42 real seconds = 11542.15 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1442.77
ttcp-t: 0.0user 0.0sys 0:01real 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 1.43 real seconds = 11483.06 KB/sec +++
ttcp-r: 11588 I/O calls, msec/call = 0.13, calls/sec = 8121.68
ttcp-r: 0.0user 0.1sys 0:01real 11% 0i+0d 0maxrss 0+1pf 0+0csw



Experiment 2

[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < linux-2.4.10.tar
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 1.42 real seconds = 11541.98 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1442.75
ttcp-t: 0.0user 0.0sys 0:01real 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 1.43 real seconds = 11482.84 KB/sec +++
ttcp-r: 11588 I/O calls, msec/call = 0.13, calls/sec = 8121.53
ttcp-r: 0.0user 0.1sys 0:01real 7% 0i+0d 0maxrss 0+1pf 0+0csw


Experiment 2


[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < linux-2.4.10.tar
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 1.42 real seconds = 11542.04 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1442.75
ttcp-t: 0.0user 0.0sys 0:01real 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 1.43 real seconds = 11482.84 KB/sec +++
ttcp-r: 11585 I/O calls, msec/call = 0.13, calls/sec = 8119.43
ttcp-r: 0.0user 0.1sys 0:01real 9% 0i+0d 0maxrss 0+2pf 0+0csw


Experiment 2

USING large amount of data: 124MB

[lin@madrid lin]$ ttcp/ttcp -t 192.168.2.2 < linux-2.4.10.tar
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 124835840 bytes in 10.61 real seconds = 11493.60 KB/sec +++
ttcp-t: 15239 I/O calls, msec/call = 0.71, calls/sec = 1436.72
ttcp-t: 0.0user 0.9sys 0:10real 8% 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: 124835840 bytes in 10.61 real seconds = 11486.22 KB/sec +++
ttcp-r: 86213 I/O calls, msec/call = 0.13, calls/sec = 8122.89
ttcp-r: 0.0user 1.2sys 0:10real 12% 0i+0d 0maxrss 0+1pf 0+0csw



Experiment 2

USING large amount of data: 124MB

[lin@madrid lin]$ ttcp/ttcp -t 192.168.2.2 < linux-2.4.10.tar
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 124835840 bytes in 10.61 real seconds = 11492.88 KB/sec +++
ttcp-t: 15239 I/O calls, msec/call = 0.71, calls/sec = 1436.63
ttcp-t: 0.0user 0.8sys 0:10real 7% 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: 124835840 bytes in 10.61 real seconds = 11486.24 KB/sec +++
ttcp-r: 86213 I/O calls, msec/call = 0.13, calls/sec = 8122.90
ttcp-r: 0.0user 1.2sys 0:10real 12% 0i+0d 0maxrss 0+1pf 0+0csw



Experiment 2

USING large amount of data: 124MB

[lin@madrid lin]$ ttcp/ttcp -t 192.168.2.2 < linux-2.4.10.tar
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 124835840 bytes in 10.61 real seconds = 11494.89 KB/sec +++
ttcp-t: 15239 I/O calls, msec/call = 0.71, calls/sec = 1436.89
ttcp-t: 0.0user 0.9sys 0:10real 8% 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: 124835840 bytes in 10.61 real seconds = 11486.23 KB/sec +++
ttcp-r: 86208 I/O calls, msec/call = 0.13, calls/sec = 8122.42
ttcp-r: 0.0user 1.2sys 0:10real 12% 0i+0d 0maxrss 0+2pf 0+0csw



Experiment 2

USING large amount of data: 124MB

[lin@madrid lin]$ ttcp/ttcp -t 192.168.2.2 < linux-2.4.10.tar
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 124835840 bytes in 10.61 real seconds = 11495.49 KB/sec +++
ttcp-t: 15239 I/O calls, msec/call = 0.71, calls/sec = 1436.96
ttcp-t: 0.0user 0.8sys 0:10real 8% 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: 124835840 bytes in 10.61 real seconds = 11486.25 KB/sec +++
ttcp-r: 86204 I/O calls, msec/call = 0.13, calls/sec = 8122.06
ttcp-r: 0.0user 1.3sys 0:10real 13% 0i+0d 0maxrss 0+2pf 0+0csw



Experiment 2

USING large amount of data: 124MB

[lin@madrid lin]$ ttcp/ttcp -t 192.168.2.2 < linux-2.4.10.tar
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 124835840 bytes in 10.61 real seconds = 11492.87 KB/sec +++
ttcp-t: 15239 I/O calls, msec/call = 0.71, calls/sec = 1436.63
ttcp-t: 0.0user 0.9sys 0:10real 8% 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: 124835840 bytes in 10.61 real seconds = 11486.21 KB/sec +++
ttcp-r: 86206 I/O calls, msec/call = 0.13, calls/sec = 8122.22
ttcp-r: 0.0user 1.3sys 0:10real 12% 0i+0d 0maxrss 0+2pf 0+0csw



Experiment 2

USING large amount of data: 124MB

[lin@madrid lin]$ ttcp/ttcp -t 192.168.2.2 < linux-2.4.10.tar
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.2.2
ttcp-t: socket
ttcp-t: connect
ttcp-t: 124835840 bytes in 10.61 real seconds = 11493.22 KB/sec +++
ttcp-t: 15239 I/O calls, msec/call = 0.71, calls/sec = 1436.68
ttcp-t: 0.0user 0.7sys 0:10real 7% 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: 124835840 bytes in 10.61 real seconds = 11486.05 KB/sec +++
ttcp-r: 86212 I/O calls, msec/call = 0.13, calls/sec = 8122.67
ttcp-r: 0.0user 1.4sys 0:10real 13% 0i+0d 0maxrss 0+1pf 0+0csw



From the above, we see  that kernel 2.2.16-22 also achieves the throughput of
full capacity.

So we also overrun the conclusion we made a few days ago.

Kernel 2.2.16-22 is not much slower than kernel 2.4.10 in ip routing.



Why???????


Is it because the ip_forward setting?????

Once I use "echo 1 > /proc/sys/net/ipv4/ip_forward".

Yesterday, I use "netcfg" to turn on ip_forwarding???????


To test this, let's turn off ip_forward from "netcfg" and turn it on by
"echo 1 > /proc/sys/net/ipv4/ip_forward". And do experiments....


experiment 2

[lin@madrid lin]$ ttcp/ttcp -t -s 192.168.2.2 < linux-2.4.10.tar
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 1.42 real seconds = 11549.62 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.71, calls/sec = 1443.70
ttcp-t: 0.0user 0.0sys 0:01real 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 1.43 real seconds = 11481.40 KB/sec +++
ttcp-r: 11588 I/O calls, msec/call = 0.13, calls/sec = 8120.51
ttcp-r: 0.0user 0.1sys 0:01real 14% 0i+0d 0maxrss 0+1pf 0+0csw





From the above experiments, the throughput is still about 11500KB/sec.

Why I can't return to those very slow cases???????