<font size=2 face="sans-serif">Thank you for the explanations concerning
the -m option. I misinterpret it.</font>
<br><font size=2 face="sans-serif">I attach 128b results because it is
where the throughput results are the best in TCP and I am just looking
for the best reachable performance.</font>
<br><font size=2 face="sans-serif">According to what you say I make a new
test without configuring the -m option.</font>
<br>
<br><font size=2 face="sans-serif">This is the first script. I start getting
statistics and then I launch my netperf test.</font>
<br><font size=2 face="Courier New">#!/bin/bash</font>
<br><font size=2 face="Courier New">mpstat -P ALL 1 > mpstat100412_x4
&</font>
<br><font size=2 face="Courier New">./test-netperf-fsl-x4_tcp2.sh 10.0.17.200
> res160412_x4</font>
<br><font size=2 face="Courier New">pkill -x mpstat</font>
<br>
<br><font size=2 face="Courier New">Here is the netperf test:</font>
<br><font size=2 face="Courier New">#!/bin/bash</font>
<br><font size=2 face="Courier New">echo "Date: `date`"</font>
<br><font size=2 face="Courier New">echo "=================TCP==================="</font>
<br><font size=2 face="Courier New">echo "============Msg Size : 65535=============="</font>
<br><font size=2 face="Courier New">netperf -cC -H $1 -t TCP_STREAM --
-C &</font>
<br><font size=2 face="Courier New">netperf -cC -H $1 -t TCP_STREAM --
-C &</font>
<br><font size=2 face="Courier New">netperf -cC -H $1 -t TCP_STREAM --
-C</font>
<br><font size=2 face="Courier New">wait</font>
<br><font size=2 face="Courier New">echo "Date: `date`"</font>
<br>
<br><font size=2 face="sans-serif">Does the '>' redirection could be
limiting?</font>
<br><font size=2 face="sans-serif">This is the final results obtained:</font>
<br>
<br><font size=2 face="Courier New">Date: Tue Apr 17 08:52:09 CEST 2012</font>
<br><font size=2 face="Courier New">=================TCP===================</font>
<br><font size=2 face="Courier New">============Msg Size : 65535==============</font>
<br><font size=2 face="Courier New">TCP STREAM TEST from 0.0.0.0 (0.0.0.0)
port 0 AF_INET to 10.0.17.200 (10.0.17.200) port 0 AF_INET</font>
<br><font size=2 face="Courier New">Recv Send Send
Utilization Service Demand</font>
<br><font size=2 face="Courier New">Socket Socket Message Elapsed
Send Recv
Send Recv</font>
<br><font size=2 face="Courier New">Size Size Size
Time Throughput local remote
local remote</font>
<br><font size=2 face="Courier New">bytes bytes bytes
secs. 10^6bits/s % S % S
us/KB us/KB</font>
<br>
<br><font size=2 face="Courier New"> 87380 16384 16384
10.01 484.42 8.26
-1617.02 2.794 -2187.620 </font>
<br><font size=2 face="Courier New">TCP STREAM TEST from 0.0.0.0 (0.0.0.0)
port 0 AF_INET to 10.0.17.200 (10.0.17.200) port 0 AF_INET</font>
<br><font size=2 face="Courier New">Recv Send Send
Utilization Service Demand</font>
<br><font size=2 face="Courier New">Socket Socket Message Elapsed
Send Recv
Send Recv</font>
<br><font size=2 face="Courier New">Size Size Size
Time Throughput local remote
local remote</font>
<br><font size=2 face="Courier New">bytes bytes bytes
secs. 10^6bits/s % S % S
us/KB us/KB</font>
<br>
<br><font size=2 face="Courier New"> 87380 16384 16384
10.01 493.43 8.22
-1616.32 2.729 -2146.741 </font>
<br><font size=2 face="Courier New">TCP STREAM TEST from 0.0.0.0 (0.0.0.0)
port 0 AF_INET to 10.0.17.200 (10.0.17.200) port 0 AF_INET</font>
<br><font size=2 face="Courier New">Recv Send Send
Utilization Service Demand</font>
<br><font size=2 face="Courier New">Socket Socket Message Elapsed
Send Recv
Send Recv</font>
<br><font size=2 face="Courier New">Size Size Size
Time Throughput local remote
local remote</font>
<br><font size=2 face="Courier New">bytes bytes bytes
secs. 10^6bits/s % S % S
us/KB us/KB</font>
<br>
<br><font size=2 face="Courier New"> 87380 16384 16384
10.21 493.68 8.07
-1582.90 2.677 -2101.319 </font>
<br><font size=2 face="Courier New">Date: Tue Apr 17 08:52:19 CEST 2012</font>
<br>
<br><font size=2 face="sans-serif">This is what top returns:</font>
<br><font size=2 face="Courier New">top - 06:41:14 up 56 min, 1 user,
load average: 0.08, 0.05, 0.05</font>
<br><font size=2 face="Courier New">Tasks: 67 total, 5 running,
62 sleeping, 0 stopped, 0 zombie</font>
<br><font size=2 face="Courier New">Cpu(s): 0.0%us, 2.1%sy,
0.0%ni, 97.7%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st</font>
<br><font size=2 face="Courier New">Mem: 3762812k total,
184724k used, 3578088k free, 928k buffers</font>
<br><font size=2 face="Courier New">Swap: 0k
total, 0k used, 0k
free, 8640k cached</font>
<br>
<br><font size=2 face="Courier New"> PID USER PR
NI VIRT RES SHR S %CPU %MEM TIME+
COMMAND</font>
<br><font size=2 face="Courier New"> 3132 root 20
0 3044 536 288 R 35 0.0 0:01.06
netserver</font>
<br><font size=2 face="Courier New"> 3134 root 20
0 3044 536 288 R 24 0.0 0:00.73
netserver</font>
<br><font size=2 face="Courier New"> 3133 root 20
0 3044 536 288 R 22 0.0 0:00.67
netserver</font>
<br><font size=2 face="Courier New"> 3131 root 20
0 2952 1104 908 R 0 0.0 0:00.06
top</font>
<br><font size=2 face="Courier New"> 1 root
20 0 2000 536 476 S 0 0.0
0:03.65 init</font>
<br>
<br><font size=2 face="sans-serif">Is that 3 netserver threads? Independent
but running on the cpu where netserver process is allocated? In fact, there
is no synchronization!</font>
<br>
<br><font size=2 face="sans-serif">The other test uses the cpu bind option
as following:</font>
<br><font size=2 face="Courier New">#!/bin/bash</font>
<br><font size=2 face="Courier New">echo "Date: `date`"</font>
<br><font size=2 face="Courier New">echo "=================TCP==================="</font>
<br><font size=2 face="Courier New">echo "============Msg Size : 65535=============="</font>
<br><font size=2 face="Courier New">netperf -cC -H $1 <b>-T,1</b> -t TCP_STREAM
-- -C &</font>
<br><font size=2 face="Courier New">netperf -cC -H $1 <b>-T,1</b> -t TCP_STREAM
-- -C &</font>
<br><font size=2 face="Courier New">netperf -cC -H $1 <b>-T,1</b> -t TCP_STREAM
-- -C</font>
<br><font size=2 face="Courier New">wait</font>
<br><font size=2 face="Courier New">echo "Date: `date`"</font>
<br>
<br><font size=2 face="sans-serif">The result of the top command looks
like the previous one:</font>
<br><font size=2 face="Courier New">top - 06:50:19 up 1:05, 1
user, load average: 0.01, 0.03, 0.05</font>
<br><font size=2 face="Courier New">Tasks: 67 total, 2 running,
65 sleeping, 0 stopped, 0 zombie</font>
<br><font size=2 face="Courier New">Cpu(s): 0.0%us, 0.6%sy,
0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st</font>
<br><font size=2 face="Courier New">Mem: 3762812k total,
184184k used, 3578628k free, 928k buffers</font>
<br><font size=2 face="Courier New">Swap: 0k
total, 0k used, 0k
free, 8640k cached</font>
<br>
<br><font size=2 face="Courier New"> PID USER PR
NI VIRT RES SHR S %CPU %MEM TIME+
COMMAND</font>
<br><font size=2 face="Courier New"><b> 3138 root 20
0 3044 536 304 S 32 0.0 0:01.14
netserver</b></font>
<br><font size=2 face="Courier New"><b> 3139 root 20
0 3044 536 304 R 30 0.0 0:01.13
netserver</b></font>
<br><font size=2 face="Courier New"><b> 3140 root 20
0 3044 536 304 S 25 0.0 0:00.94
netserver</b></font>
<br><font size=2 face="Courier New"> 3131 root 20
0 2952 1104 908 R 1 0.0 0:00.94
top</font>
<br><font size=2 face="Courier New"> 853 root 20
0 0 0 0 S 0
0.0 0:00.01 kworker/2:1</font>
<br><font size=2 face="Courier New"> 1 root
20 0 2000 536 476 S 0 0.0
0:03.66 init</font>
<br>
<br><font size=2 face="Courier New">And the results of the netperf test:</font>
<br><font size=2 face="Courier New">Date: Tue Apr 17 09:00:24 CEST 2012</font>
<br><font size=2 face="Courier New">=================TCP===================</font>
<br><font size=2 face="Courier New">============Msg Size : 65535==============</font>
<br><font size=2 face="Courier New">TCP STREAM TEST from 0.0.0.0 (0.0.0.0)
port 0 AF_INET to 10.0.17.200 (10.0.17.200) port 0 AF_INET : cpu bind</font>
<br><font size=2 face="Courier New">Recv Send Send
Utilization Service Demand</font>
<br><font size=2 face="Courier New">Socket Socket Message Elapsed
Send Recv
Send Recv</font>
<br><font size=2 face="Courier New">Size Size Size
Time Throughput local remote
local remote</font>
<br><font size=2 face="Courier New">bytes bytes bytes
secs. 10^6bits/s % S % S
us/KB us/KB</font>
<br>
<br><font size=2 face="Courier New"> 87380 16384 16384
10.02 405.51 19.51 -547.57
7.882 -884.953 </font>
<br><font size=2 face="Courier New">TCP STREAM TEST from 0.0.0.0 (0.0.0.0)
port 0 AF_INET to 10.0.17.200 (10.0.17.200) port 0 AF_INET : cpu bind</font>
<br><font size=2 face="Courier New">Recv Send Send
Utilization Service Demand</font>
<br><font size=2 face="Courier New">Socket Socket Message Elapsed
Send Recv
Send Recv</font>
<br><font size=2 face="Courier New">Size Size Size
Time Throughput local remote
local remote</font>
<br><font size=2 face="Courier New">bytes bytes bytes
secs. 10^6bits/s % S % S
us/KB us/KB</font>
<br>
<br><font size=2 face="Courier New"> 87380 16384 16384
10.01 405.01 19.54 -548.15
7.903 -886.995 </font>
<br><font size=2 face="Courier New">TCP STREAM TEST from 0.0.0.0 (0.0.0.0)
port 0 AF_INET to 10.0.17.200 (10.0.17.200) port 0 AF_INET : cpu bind</font>
<br><font size=2 face="Courier New">Recv Send Send
Utilization Service Demand</font>
<br><font size=2 face="Courier New">Socket Socket Message Elapsed
Send Recv
Send Recv</font>
<br><font size=2 face="Courier New">Size Size Size
Time Throughput local remote
local remote</font>
<br><font size=2 face="Courier New">bytes bytes bytes
secs. 10^6bits/s % S % S
us/KB us/KB</font>
<br>
<br><font size=2 face="Courier New"> 87380 16384 16384
10.01 394.21 19.54 -548.10
8.119 -911.191 </font>
<br><font size=2 face="Courier New">Date: Tue Apr 17 09:00:34 CEST 2012</font>
<br>
<br><font size=2 face="Courier New">The performance are a bit lower. In
any case, they are not really what is expected.</font>
<br><font size=2 face="Courier New">The CPU utilization is more realistic
than with 128b socket size. This CPU utilization concerns the sender which
is a dual core Intel Xeon and not the 8 cores Freescale processor. Netserver
is running on the 8 The CPU utilization is very high when I send little
packet and decrease when I get closer to the MTU both in UDP and TCP.</font>
<br>
<br><tt><font size=2>netperf -p 17170 -cC -H ip_addr -t TCP_STREAM -- <b>-m
128</b><br>
<br>
So in this results, the send message size corresponds to the send buffer
size according to what you say?<br>
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.0.17.200 <br>
(10.0.17.200) port 0 AF_INET<br>
Recv Send Send
Utilization
Service <br>
Demand<br>
Socket Socket <b>Message</b> Elapsed
Send Recv Send Recv<br>
Size Size <b>Size </b>Time
Throughput local remote local <br>
remote<br>
bytes bytes <b>bytes </b>secs. 10^6bits/s
% S % S us/KB us/KB<br>
<br>
87380 16384 <b>128 </b>10.00
1867.39 100.00 46.75 8.774 </font></tt>
<br>
<br><font size=2 face="sans-serif">Have a nice day.</font>
<br>
<br><font size=2 face="sans-serif">Best regards.</font>
<br>
<br><font size=2 face="sans-serif">Simon Duboué</font>
<br>
<br>