1 |
27 |
unneback |
The network performance tests are split into two parts, one
|
2 |
|
|
[nc6_test_master] which runs on a host (like Linux or FreeBSD) and the
|
3 |
|
|
other [nc6_test_slave] which runs on the target platform. Note that
|
4 |
|
|
these tests supplant older versions (nc_test_XXX) which did not
|
5 |
|
|
support IPv6 addressing.
|
6 |
|
|
|
7 |
|
|
To run the tests, start the slave part first. On the target hardware,
|
8 |
|
|
run the program "nc6_test_slave". It will display a set of information
|
9 |
|
|
on the console (use serial console only as using a network console
|
10 |
|
|
would severely impact the numbers) similar to this:
|
11 |
|
|
|
12 |
|
|
RedBoot> lo ipv6.test;g
|
13 |
|
|
Entry point: 0x00040040, address range: 0x00040000-0x000ae56c
|
14 |
|
|
[cyg_net_init] Init: mbinit(0x00000000)
|
15 |
|
|
[cyg_net_init] Init: cyg_net_init_devs(0x00000000)
|
16 |
|
|
Init device 'cs8900a_eth0'
|
17 |
|
|
[cyg_net_init] Init: loopattach(0x00000000)
|
18 |
|
|
[cyg_net_init] Init: ifinit(0x00000000)
|
19 |
|
|
IFP: 0x000acf1c, next: 0x00117a00
|
20 |
|
|
IFP: 0x00117a00, next: 0x00000000
|
21 |
|
|
eth0 XXX: driver didn't set ifq_maxlen
|
22 |
|
|
[cyg_net_init] Init: domaininit(0x00000000)
|
23 |
|
|
[cyg_net_init] Init: cyg_net_add_domain(0x000ad7f8)
|
24 |
|
|
New domain internet6 at 0x00000000
|
25 |
|
|
[cyg_net_init] Init: cyg_net_add_domain(0x000adfbc)
|
26 |
|
|
New domain internet at 0x00000000
|
27 |
|
|
[cyg_net_init] Init: cyg_net_add_domain(0x000ad314)
|
28 |
|
|
New domain route at 0x00000000
|
29 |
|
|
[cyg_net_init] Init: cyg_route_init(0x00000000)
|
30 |
|
|
[cyg_net_init] Init: ip6_init2(0x00000000)
|
31 |
|
|
[cyg_net_init] Done
|
32 |
|
|
Start Network Characterization - SLAVE
|
33 |
|
|
BOOTP[eth0] op: REQUEST
|
34 |
|
|
htype: Ethernet
|
35 |
|
|
hlen: 6
|
36 |
|
|
hops: 0
|
37 |
|
|
xid: 0xe194048b
|
38 |
|
|
secs: 0
|
39 |
|
|
flags: 0x80
|
40 |
|
|
hw_addr: 00:30:d3:03:04:8b
|
41 |
|
|
client IP: 0.0.0.0
|
42 |
|
|
my IP: 192.168.1.52
|
43 |
|
|
server IP: 192.168.1.101
|
44 |
|
|
gateway IP: 0.0.0.0
|
45 |
|
|
server: hermes.chez-thomas.org
|
46 |
|
|
file: /tftpboot/192.168.1.52/zImage
|
47 |
|
|
options:
|
48 |
|
|
DHCP message: 3 REQUEST
|
49 |
|
|
DHCP server id: 63.225.98.241
|
50 |
|
|
DHCP time 51: -1
|
51 |
|
|
DHCP time 58: 0
|
52 |
|
|
DHCP time 59: 0
|
53 |
|
|
subnet mask: 255.255.255.0
|
54 |
|
|
gateway: 192.168.1.101
|
55 |
|
|
domain server: 63.225.98.241, 206.196.128.1, 205.180.230.20, 205.180.230.21
|
56 |
|
|
domain name: chez-thomas.org
|
57 |
|
|
IP broadcast: 192.168.1.255
|
58 |
|
|
DHCP option: 37/55.9: 54 51 58 59 1 3 6 15 28
|
59 |
|
|
DHCP option: 39/57.2: 576
|
60 |
|
|
DHCP requested ip: 192.168.1.52
|
61 |
|
|
No load = 248826
|
62 |
|
|
Set background load = 20%
|
63 |
|
|
Set background load = 0%
|
64 |
|
|
High Load[20] = 192089 => 23%
|
65 |
|
|
Set background load = 20%
|
66 |
|
|
Set background load = 0%
|
67 |
|
|
Load[10] = 220394 => 12%
|
68 |
|
|
Set background load = 20%
|
69 |
|
|
Set background load = 0%
|
70 |
|
|
Load[15] = 206082 => 18%
|
71 |
|
|
Set background load = 20%
|
72 |
|
|
Set background load = 0%
|
73 |
|
|
Final load[16] = 203142 => 19%
|
74 |
|
|
Start test for eth0
|
75 |
|
|
Family: 2, Socket: 2, Addr: 0.0.0.0
|
76 |
|
|
Family: 28, Socket: 2, Addr: ::
|
77 |
|
|
|
78 |
|
|
At this point, the slave is ready to accept commands. The section with
|
79 |
|
|
lines like "Set background load = 20%" are the slave test self-calibrating
|
80 |
|
|
a background load level which is used later.
|
81 |
|
|
|
82 |
|
|
Once the slave is started, then on your host system (Linux), run the
|
83 |
|
|
'nc6_test_master' program like this:
|
84 |
|
|
|
85 |
|
|
[root@ebsa2 gthomas]# ./nc6_test_master 3ffe:302:11:2::192.168.1.52
|
86 |
|
|
|
87 |
|
|
This command would test against the IPv6 slave. You can also use an IPv4
|
88 |
|
|
address.
|
89 |
|
|
|
90 |
|
|
The master program will then run a sequence of tests. Each test is accomplished
|
91 |
|
|
by sending a command "packet" to the slave which initiates a sequence of
|
92 |
|
|
I/O requests. These are requests for UDP and TCP traffic patterns, adjusting
|
93 |
|
|
the slave background load, etc. The results are displayed by the master
|
94 |
|
|
program as they are obtained. For example:
|
95 |
|
|
|
96 |
|
|
================== No load, master at 100% ========================
|
97 |
|
|
Start UDP echo [640,1024] - no delays
|
98 |
|
|
UDP echo - 1280 bufs of 1024 bytes in 2.03 seconds - 630.54 KB/S - 5.1654 Mbit/S (M = 10^6)
|
99 |
|
|
slave sent 640, recvd 640
|
100 |
|
|
Start UDP send [640,1024] - no delays
|
101 |
|
|
Packets out of sequence - recvd: 51, expected: 50
|
102 |
|
|
Packets out of sequence - recvd: 103, expected: 102
|
103 |
|
|
Packets out of sequence - recvd: 155, expected: 154
|
104 |
|
|
Packets out of sequence - recvd: 207, expected: 206
|
105 |
|
|
Packets out of sequence - recvd: 259, expected: 258
|
106 |
|
|
Packets out of sequence - recvd: 311, expected: 310
|
107 |
|
|
Packets out of sequence - recvd: 363, expected: 362
|
108 |
|
|
Packets out of sequence - recvd: 415, expected: 414
|
109 |
|
|
Packets out of sequence - recvd: 467, expected: 466
|
110 |
|
|
Packets out of sequence - recvd: 519, expected: 518
|
111 |
|
|
Packets out of sequence - recvd: 571, expected: 570
|
112 |
|
|
Packets out of sequence - recvd: 623, expected: 622
|
113 |
|
|
UDP send - 628 bufs of 1024 bytes in 1.46 seconds - 430.14 KB/S - 3.5237 Mbit/S (M = 10^6), 12 out of sequence
|
114 |
|
|
slave sent 628, recvd 0
|
115 |
|
|
Start UDP recv [640,1024] - no delays
|
116 |
|
|
UDP recv - 640 bufs of 1024 bytes in 0.05 seconds - 12800.00 KB/S - 104.8576 Mbit/S (M = 10^6)
|
117 |
|
|
slave sent 0, recvd 495
|
118 |
|
|
Start TCP echo [640,1024] - no delays
|
119 |
|
|
TCP echo - 1280 bufs of 1024 bytes in 2.16 seconds - 592.59 KB/S - 4.8545 Mbit/S (M = 10^6)
|
120 |
|
|
slave sent 640, recvd 640
|
121 |
|
|
Start TCP send [640,1024] - no delays
|
122 |
|
|
TCP send - 640 bufs of 1024 bytes in 0.80 seconds - 800.00 KB/S - 6.5536 Mbit/S (M = 10^6)
|
123 |
|
|
slave sent 640, recvd 0
|
124 |
|
|
Start TCP recv [640,1024] - no delays
|
125 |
|
|
TCP recv - 640 bufs of 1024 bytes in 0.65 seconds - 984.62 KB/S - 8.0660 Mbit/S (M = 10^6)
|
126 |
|
|
slave sent 0, recvd 640
|
127 |
|
|
Start TCP echo [64,10240] - no delays
|
128 |
|
|
TCP echo - 128 bufs of 10240 bytes in 3.80 seconds - 336.84 KB/S - 2.7594 Mbit/S (M = 10^6)
|
129 |
|
|
slave sent 64, recvd 64
|
130 |
|
|
|
131 |
|
|
====================== Various slave compute loads ===================
|
132 |
|
|
>>>>>>>>>>>> slave processing load at 0%
|
133 |
|
|
Start UDP echo [2048,1024] - no delays
|
134 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 6.51 seconds - 629.19 KB/S - 5.1543 Mbit/S (M = 10^6)
|
135 |
|
|
slave sent 2048, recvd 2048
|
136 |
|
|
Start TCP echo [2048,1024] - no delays
|
137 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 6.90 seconds - 593.62 KB/S - 4.8630 Mbit/S (M = 10^6)
|
138 |
|
|
slave sent 2048, recvd 2048
|
139 |
|
|
>>>>>>>>>>>> slave processing load at 10%
|
140 |
|
|
Start UDP echo [2048,1024] - no delays
|
141 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 6.81 seconds - 601.47 KB/S - 4.9272 Mbit/S (M = 10^6)
|
142 |
|
|
slave sent 2048, recvd 2048
|
143 |
|
|
Start TCP echo [2048,1024] - no delays
|
144 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 7.00 seconds - 585.14 KB/S - 4.7935 Mbit/S (M = 10^6)
|
145 |
|
|
slave sent 2048, recvd 2048
|
146 |
|
|
>>>>>>>>>>>> slave processing load at 20%
|
147 |
|
|
Start UDP echo [2048,1024] - no delays
|
148 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 6.81 seconds - 601.47 KB/S - 4.9272 Mbit/S (M = 10^6)
|
149 |
|
|
slave sent 2048, recvd 2048
|
150 |
|
|
Start TCP echo [2048,1024] - no delays
|
151 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 7.32 seconds - 559.56 KB/S - 4.5839 Mbit/S (M = 10^6)
|
152 |
|
|
slave sent 2048, recvd 2048
|
153 |
|
|
>>>>>>>>>>>> slave processing load at 30%
|
154 |
|
|
Start UDP echo [2048,1024] - no delays
|
155 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 8.04 seconds - 509.45 KB/S - 4.1734 Mbit/S (M = 10^6)
|
156 |
|
|
slave sent 2048, recvd 2048
|
157 |
|
|
Start TCP echo [2048,1024] - no delays
|
158 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 8.78 seconds - 466.51 KB/S - 3.8217 Mbit/S (M = 10^6)
|
159 |
|
|
slave sent 2048, recvd 2048
|
160 |
|
|
>>>>>>>>>>>> slave processing load at 40%
|
161 |
|
|
Start UDP echo [2048,1024] - no delays
|
162 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 10.22 seconds - 400.78 KB/S - 3.2832 Mbit/S (M = 10^6)
|
163 |
|
|
slave sent 2048, recvd 2048
|
164 |
|
|
Start TCP echo [2048,1024] - no delays
|
165 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 10.24 seconds - 400.00 KB/S - 3.2768 Mbit/S (M = 10^6)
|
166 |
|
|
slave sent 2048, recvd 2048
|
167 |
|
|
>>>>>>>>>>>> slave processing load at 50%
|
168 |
|
|
Start UDP echo [2048,1024] - no delays
|
169 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 10.22 seconds - 400.78 KB/S - 3.2832 Mbit/S (M = 10^6)
|
170 |
|
|
slave sent 2048, recvd 2048
|
171 |
|
|
Start TCP echo [2048,1024] - no delays
|
172 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 10.24 seconds - 400.00 KB/S - 3.2768 Mbit/S (M = 10^6)
|
173 |
|
|
slave sent 2048, recvd 2048
|
174 |
|
|
|
175 |
|
|
====================== Various master loads ===================
|
176 |
|
|
Testing IDLE for 10 seconds
|
177 |
|
|
IDLE - ticks: 1003, count: 1367315
|
178 |
|
|
Start UDP echo [2048,1024] - no delays
|
179 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 10.22 seconds - 400.78 KB/S - 3.2832 Mbit/S (M = 10^6)
|
180 |
|
|
slave sent 2048, recvd 2048
|
181 |
|
|
IDLE - ticks: 1028, count: 641138, 45% idle
|
182 |
|
|
Start TCP echo [2048,1024] - no delays
|
183 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 10.24 seconds - 400.00 KB/S - 3.2768 Mbit/S (M = 10^6)
|
184 |
|
|
slave sent 2048, recvd 2048
|
185 |
|
|
IDLE - ticks: 1330, count: 1004010, 55% idle
|
186 |
|
|
Start UDP echo [2048,1024] - 10ms delay after 10 packets
|
187 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 13.01 seconds - 314.83 KB/S - 2.5791 Mbit/S (M = 10^6)
|
188 |
|
|
slave sent 2048, recvd 2048
|
189 |
|
|
IDLE - ticks: 1307, count: 1015862, 56% idle
|
190 |
|
|
Start TCP echo [2048,1024] - 10ms delay after 10 packets
|
191 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 13.26 seconds - 308.90 KB/S - 2.5305 Mbit/S (M = 10^6)
|
192 |
|
|
slave sent 2048, recvd 2048
|
193 |
|
|
IDLE - ticks: 1633, count: 1410624, 63% idle
|
194 |
|
|
Start UDP echo [2048,1024] - 50ms delay after 10 packets
|
195 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 21.00 seconds - 195.05 KB/S - 1.5978 Mbit/S (M = 10^6)
|
196 |
|
|
slave sent 2048, recvd 2048
|
197 |
|
|
IDLE - ticks: 2106, count: 2105817, 73% idle
|
198 |
|
|
Start TCP echo [2048,1024] - 50ms delay after 10 packets
|
199 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 21.26 seconds - 192.66 KB/S - 1.5783 Mbit/S (M = 10^6)
|
200 |
|
|
slave sent 2048, recvd 2048
|
201 |
|
|
IDLE - ticks: 2434, count: 2471814, 74% idle
|
202 |
|
|
Start UDP echo [2048,1024] - 100ms delay after 10 packets
|
203 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 31.28 seconds - 130.95 KB/S - 1.0727 Mbit/S (M = 10^6)
|
204 |
|
|
slave sent 2048, recvd 2048
|
205 |
|
|
IDLE - ticks: 3135, count: 3508880, 82% idle
|
206 |
|
|
Start TCP echo [2048,1024] - 100ms delay after 10 packets
|
207 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 31.43 seconds - 130.32 KB/S - 1.0676 Mbit/S (M = 10^6)
|
208 |
|
|
slave sent 2048, recvd 2048
|
209 |
|
|
IDLE - ticks: 3451, count: 3859323, 82% idle
|
210 |
|
|
Start UDP echo [2048,1024] - 10ms delay after 1 packet
|
211 |
|
|
UDP echo - 4096 bufs of 1024 bytes in 40.94 seconds - 100.05 KB/S - 0.8196 Mbit/S (M = 10^6)
|
212 |
|
|
slave sent 2048, recvd 2048
|
213 |
|
|
IDLE - ticks: 4102, count: 4789770, 85% idle
|
214 |
|
|
Start TCP echo [2048,1024] - 10ms delay after 1 packet
|
215 |
|
|
TCP echo - 4096 bufs of 1024 bytes in 40.96 seconds - 100.00 KB/S - 0.8192 Mbit/S (M = 10^6)
|
216 |
|
|
slave sent 2048, recvd 2048
|
217 |
|
|
IDLE - ticks: 4407, count: 5147211, 85% idle
|
218 |
|
|
... Done
|
219 |
|
|
|
220 |
|
|
The slave will display lines like:
|
221 |
|
|
UDP echo - 640 buffers, 1024 bytes
|
222 |
|
|
UDP send - 640 buffers, 1024 bytes
|
223 |
|
|
sendto UDP data: No buffer space available
|
224 |
|
|
sendto UDP data: No buffer space available
|
225 |
|
|
sendto UDP data: No buffer space available
|
226 |
|
|
sendto UDP data: No buffer space available
|
227 |
|
|
sendto UDP data: No buffer space available
|
228 |
|
|
sendto UDP data: No buffer space available
|
229 |
|
|
sendto UDP data: No buffer space available
|
230 |
|
|
sendto UDP data: No buffer space available
|
231 |
|
|
sendto UDP data: No buffer space available
|
232 |
|
|
sendto UDP data: No buffer space available
|
233 |
|
|
sendto UDP data: No buffer space available
|
234 |
|
|
sendto UDP data: No buffer space available
|
235 |
|
|
UDP recv - 640 buffers, 1024 bytes
|
236 |
|
|
Packets out of sequence - recvd: 508, expected: 492
|
237 |
|
|
Packets out of sequence - recvd: 528, expected: 510
|
238 |
|
|
recvfrom timeout, expecting seq #529
|
239 |
|
|
recvfrom timeout, expecting seq #530
|
240 |
|
|
recvfrom timeout, expecting seq #531
|
241 |
|
|
recvfrom timeout, expecting seq #532
|
242 |
|
|
recvfrom timeout, expecting seq #533
|
243 |
|
|
recvfrom timeout, expecting seq #534
|
244 |
|
|
... giving up
|
245 |
|
|
TCP echo - 640 buffers, 1024 bytes
|
246 |
|
|
TCP - listen on IPv6/8770
|
247 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1085)
|
248 |
|
|
TCP send - 640 buffers, 1024 bytes
|
249 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1086)
|
250 |
|
|
TCP recv - 640 buffers, 1024 bytes
|
251 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1087)
|
252 |
|
|
TCP echo - 64 buffers, 10240 bytes
|
253 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1088)
|
254 |
|
|
Set background load = 0%
|
255 |
|
|
Set background load = 0%
|
256 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
257 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
258 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1089)
|
259 |
|
|
Set background load = 10%
|
260 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
261 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
262 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1090)
|
263 |
|
|
Set background load = 20%
|
264 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
265 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
266 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1091)
|
267 |
|
|
Set background load = 30%
|
268 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
269 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
270 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1092)
|
271 |
|
|
Set background load = 40%
|
272 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
273 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
274 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1093)
|
275 |
|
|
Set background load = 50%
|
276 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
277 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
278 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1094)
|
279 |
|
|
Start IDLE thread
|
280 |
|
|
Stop IDLE thread
|
281 |
|
|
Start IDLE thread
|
282 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
283 |
|
|
Stop IDLE thread
|
284 |
|
|
Start IDLE thread
|
285 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
286 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1095)
|
287 |
|
|
Stop IDLE thread
|
288 |
|
|
Start IDLE thread
|
289 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
290 |
|
|
Stop IDLE thread
|
291 |
|
|
Start IDLE thread
|
292 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
293 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1096)
|
294 |
|
|
Stop IDLE thread
|
295 |
|
|
Start IDLE thread
|
296 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
297 |
|
|
Stop IDLE thread
|
298 |
|
|
Start IDLE thread
|
299 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
300 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1097)
|
301 |
|
|
Stop IDLE thread
|
302 |
|
|
Start IDLE thread
|
303 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
304 |
|
|
Stop IDLE thread
|
305 |
|
|
Start IDLE thread
|
306 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
307 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1098)
|
308 |
|
|
Stop IDLE thread
|
309 |
|
|
Start IDLE thread
|
310 |
|
|
UDP echo - 2048 buffers, 1024 bytes
|
311 |
|
|
Stop IDLE thread
|
312 |
|
|
Start IDLE thread
|
313 |
|
|
TCP echo - 2048 buffers, 1024 bytes
|
314 |
|
|
connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1099)
|
315 |
|
|
Stop IDLE thread
|
316 |
|
|
|
317 |
|
|
Notice that if the host and target are not well balanced (in this example,
|
318 |
|
|
the host is a fairly fast P-II running with a very good 10/100Mb ethernet
|
319 |
|
|
controller and the slave is a reasonable [not fast!] ARM board with a very
|
320 |
|
|
simplistic [read "slow"] network adaptor), then the UDP tests can have
|
321 |
|
|
synchronization problems. This is the nature of UDP and is to be expected.
|