1sockperf(3Version)                                          sockperf(3Version)
2
3
4

NAME

6       sockperf - SockPerf is a tool for network performance measurement
7       written in C++.
8

1. SUMMARY

10       SockPerf is a network testing tool oriented to measure network latency
11       and also spikes of network latency. Tool can create UDP/TCP data
12       streams and measure the throughput and latency of a network that is
13       carrying them. SockPerf allows the user to define different parameters
14       that can be used for testing a network, or alternately for optimizing
15       or tuning a network. Tool provides a client and server functionality,
16       and can measure the throughput and latency between the two end-points,
17       either unidirectionally or bidirectionally. This utility can be used in
18       Linux systems.
19

2. INTRODUCTION

21       People are often concerned about measuring the maximum data throughput
22       rate of a communications link or network access. A typical method of
23       performing a measurement is to transfer a 'large' file and measure the
24       time taken to do so. The throughput is then calculated by dividing the
25       file size by the time to get the throughput in megabits, kilobits, or
26       bits per second. Unfortunately, the results of such an exercise will
27       result in the goodput which is less than the maximum throughput,
28       leading to people believing that their communications link is not
29       operating correctly. In fact, there are many overheads accounted for in
30       good case in addition to transmission overheads, including latency, TCP
31       Receive Window size and machine limitations, which means the calculated
32       goodput does not reflect the maximum achievable throughput.
33
34       Another important thing of tool capacity is latency measurement.
35       Latency - is the time it takes packet to go from user space program on
36       one machine to user space program on another machine. Being able to
37       quantify latency in terms other than millisecond response time is
38       important when determining the quality of a network. One of available
39       tool that can help administrators do just that is Sockperf.
40
41       SockPerf works as an on-demand client and server test. How this works
42       is that one system runs the Sockperf server over a specified port and
43       another system functions as a client running the Sockperf client. The
44       binaries are the same, and there is an option to have the role of
45       client or server, so the roles can easily be reversed if necessary.
46

3. OVERVIEW

48       Sockperf tests UDP/TCP network connection and maintenance following
49       functionality:
50
51       • Measure latency;
52
53       • Measure TX/RX bandwidth;
54
55       • Measure packet loss;
56
57       • Multicast;
58
59       • Multi-threaded;
60
61       features:
62
63       • Measure the RTT of packets in descrete way;
64
65       • Provide full log of packet times;
66
67       • Provide few modes to monitor multiple file descriptors as
68         recvfrom/select/poll/epoll;
69
70       • Improved CPU utilization;
71
72       Initially the tool was developed to demonstrate advantages of
73       Mellanox's Messaging Accelerator (VMA). VMA is a socket API based,
74       dynamically linked, user space Linux library which serves to
75       transparently enhance the performance of Multicast/UDP/TCP networking
76       heavy applications over the InfiniBand and Ethernet network. More
77       interested user can read detail information at http://www.mellanox.com.
78       Actually Sockperf can be used natively, or with VMA acceleration and
79       see the benefit of VMA.
80
81       SockPerf operates by sending packets from the client to the server,
82       which then sends the packets back to the client. This measured round
83       trip time is the route trip time (RTT) between the two machines on a
84       specific network path. The average RTT is calculated by dividing the
85       total number of packets that perform this round trip by some fixed
86       period of time. The average latency for a given one-way path between
87       the two machines is the average RTT divided by two.
88
89       SockPerf can work as server or execute under-load, ping-pong, playback
90       and throughput tests and be a server or a client.
91
92       SockPerf can be launched in single point manner that is name as the
93       first mode and using special formatted feed file named as the second
94       mode.
95
96       Mode One:
97
98       $sockperf server -i 224.18.7.81 -p 5001
99       sockperf: == version #3.5-no.git ==
100       sockperf: [SERVER] listen on:
101       [ 0] IP = 224.18.7.81     PORT =  5001 # UDP
102       sockperf: Warmup stage (sending a few dummy messages)...
103       sockperf: [tid 4701] using recvfrom() to block on socket(s
104
105
106       Mode Two:
107
108       $sockperf server -f conf.file -F e
109       sockperf: == version #3.5-no.git ==
110       sockperf: [SERVER] listen on:
111       [ 0] IP = 5.2.1.3        PORT =  6671 # TCP
112       [ 1] IP = 5.2.1.3        PORT =  6672 # TCP
113       [ 2] IP = 5.2.1.3        PORT =  6673 # TCP
114       [ 3] IP = 5.2.1.3        PORT =  6674 # TCP
115       [ 4] IP = 5.2.1.3        PORT =  6675 # TCP
116       sockperf: Warmup stage (sending a few dummy messages)...
117       sockperf: [tid 4805] using epoll() to block on socket(s)
118
119
120       Every line in feed file should have following format as
121
122       or
123
124       or
125
126       where
127
128       • [U|T] - UDP or TCP protocol;
129
130       • address - Internet Protocol (IP) address or host name (IPv6 addresses
131         must be enclosed in square brackets);
132
133       • port - Port number;
134
135       • mc_src_addr - Optional multicast source IP address or host name.
136
137       • PATH - absolute path for UNIX Domain Socket Linux - line must start
138         with '/' Windows - line must start with absoulte path including
139         directory, e.g 'c:\tmp\test'
140
141   3.1 Available options
142       The following table describes Sockperf options, and their possible
143       values:
144
145       -h,-?   --help,--usage         -Show the help message and exit.
146               --tcp --stream         -Use stream socket/TCP protocol (default dgram socket/UDP protocol).
147       -i      --ip --addr            -Listen on/send to ip <ip> or address <name>.
148       -p      --port                 -Listen on/connect to port <port> (default 11111).
149       -f      --file                 -Read list of connections from file (used in pair with -F option).
150       -F      --iomux-type           -Type of multiple file descriptors handle [s|select|p|poll|e|epoll|r|recvfrom|x|socketxtreme](default epoll).
151               --timeout              -Set select/poll/epoll timeout to <msec>, -1 for infinite (default is 10 msec).
152       -a      --activity             -Measure activity by printing a '.' for the last <N> messages processed.
153       -A      --Activity             -Measure activity by printing the duration for last <N>  messages processed.
154               --tcp-avoid-nodelay    -Stop/Start delivering TCP Messages Immediately (Enable/Disable Nagel). Default is Nagel Disabled except in Throughput where the default is Nagel enabled.
155               --tcp-skip-blocking-send
156                                      -Enables non-blocking send operation (default OFF).
157               --tos                  -Allows setting tos
158               --mc-rx-ip,--mc-rx-if  -Use mc-rx-ip (IPv4) / mc-rx-if (IPv6). Set ipv4 address / interface index of interface on which to receive multicast messages (can be other then route table).
159               --mc-tx-ip,--mc-tx-if  -Use mc-tx-ip (IPv4) / mc-tx-if (IPv6). Set ipv4 address / interface index of interface on which to transmit multicast messages (can be other then route table).
160               --mc-loopback-enable   -Enables mc loopback (default disabled).
161               --mc-ttl               -Limit the lifetime of the message (default 2).
162               --mc-source-filter     -Set address <ip, hostname> of multicast messages source which is allowed to receive from.
163               --uc-reuseaddr         -Enables unicast reuse address (default disabled).
164               --lls                  -Turn on LLS via socket option (value = usec to poll).
165               --buffer-size          -Set total socket receive/send buffer <size> in bytes (system defined by default).
166               --nonblocked           -Open non-blocked sockets.
167               --recv_looping_num     -Set sockperf to loop over recvfrom() until EAGAIN or <N> good received packets, -1 for infinite, must be used with --nonblocked (default 1).
168               --dontwarmup           -Don't send warm up messages on start.
169               --pre-warmup-wait      -Time to wait before sending warm up messages (seconds).
170               --zcopyread,--vmazcopyread
171                                      -Use VMA's zero copy reads API (See VMA's readme).
172               --daemonize            -Run as daemon.
173               --no-rdtsc             -Don't use register when taking time; instead use monotonic clock.
174               --load-vma             -Load VMA dynamically even when LD_PRELOAD was not used.
175               --load-xlio            -Load XLIO dynamically even when LD_PRELOAD was not used.
176               --rate-limit           -use rate limit (packet-pacing), with VMA must be run with VMA_RING_ALLOCATION_LOGIC_TX mode.
177               --set-sock-accl        -Set socket acceleration before run (available for some of Mellanox systems)
178       -d      --debug                -Print extra debug information.
179
180
181   3.2 Server
182       Server options are:
183
184               --threads-num          -Run <N> threads on server side (requires '-f' option).
185               --cpu-affinity         -Set threads affinity to the given core ids in list format (see: cat /proc/cpuinfo).
186               --rxfiltercb,--vmarxfiltercb
187                                      -Use VMA's receive path message filter callback API (See VMA's readme).
188               --force-unicast-reply  -Force server to reply via unicast.
189               --dont-reply           -Server won't reply to the client messages.
190       -m      --msg-size             -Set maximum message size that the server can receive <size> bytes (default 65507).
191       -g      --gap-detection        -Enable gap-detection.
192
193
194   3.3 Client
195       Sockperf supports different scenarios to run itself as a client. There
196       are under-load, ping-pong, playback and throughput subcommands to
197       select one of the scenarios.
198
199       • under-load - run sockperf client for latency under load test;
200
201       • ping-pong - run sockperf client for latency test in ping pong mode;
202
203       • playback - run sockperf client for latency test using playback of
204         predefined traffic, based on timeline and message size;
205
206       • throughput - run sockperf client for one way throughput test;
207
208       General client options are:
209
210               --sender-affinity      -Set sender thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
211               --receiver-affinity    -Set receiver thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
212               --full-log             -Dump full log of all messages send/receive time to the given file in CSV format.
213               --full-rtt             -Show results in round-trip-time instead of latency.
214               --giga-size            -Print sizes in GigaByte.
215               --increase_output_precision
216                                      -Increase number of digits after decimal point of the throughput output (from 3 to 9).
217               --dummy-send           -Use VMA's dummy send API instead of busy wait, must be higher than regular msg rate.
218                                       optional: set dummy-send rate per second (default 10,000), usage: --dummy-send [<rate>|max]
219       -t      --time                 -Run for <sec> seconds (default 1, max = 36000000).
220       -n      --number-of-packets    -Run for n packets sent and received (default 0, max = 100000000).
221               --client_port          -Force the client side to bind to a specific port (default = 0).
222               --client_addr          -Force the client side to bind to a specific address in IPv4, IPv6, UNIX domain socket format (default = 0).
223       -b      --burst                -Control the client's number of a messages sent in every burst.
224               --mps                  -Set number of messages-per-second (default = 10000 - for under-load mode, or max - for ping-pong and throughput modes; for maximum use --mps=max;
225                                       support --pps for old compatibility).
226       -m      --msg-size             -Use messages of size <size> bytes (minimum default 14).
227       -r      --range                -comes with -m <size>, randomly change the messages size in range: <size> +- <N>.
228               --data-integrity       -Perform data integrity test.
229               --ci_sig_level         -Normal confidence interval significance level for stat reported. Values are between 0 and 100 exclusive (default 99).
230               --histogram            -Build histogram of latencies. Histogram arguments formated as binsize:lowerrange:upperrange
231
232
233   3.4 Tools
234       SockPerf package contains few scripts that allow to generate special
235       formatted file to launch tool in different configurations.
236
237       • filter.awk - can be used for filtering lines from the full log file
238         based on given latency range;
239
240       • gen1.awk - this awk script generates playback files (it is for stable
241         PPS playback file);
242
243       • gen2.awk - this awk script generates playback files using the input
244         for this script is file with lines of the format: startTime;
245         duration; startPPS; endPPS; msgSize (it is for linear increased and
246         decreased PPS playback file);
247
248          create playback file using gen1.awk > pfile
249          generated file:
250       # ==== playback file for sockperf - generated by gen1.awk ====
251       #baseTime=1.000000; PPS=200000; runtime=1.000000; interval=0.000005; NUM_RECORDS=200000
252       # file contains 200000 records
253       1.000005000, 12
254       1.000010000, 12
255       1.000015000, 12
256       1.000020000, 12
257       1.000025000, 12
258       1.000030000, 12
259       1.000035000, 12
260       1.000040000, 12
261       ...
262       1.999950000, 12
263       1.999955000, 12
264       1.999960000, 12
265       1.999965000, 12
266       1.999970000, 12
267       1.999975000, 12
268       1.999980000, 12
269       1.999985000, 12
270       1.999990000, 12
271       1.999995000, 12
272       2.000000000, 12
273       #200000 records were written successfully
274          start server on ipX
275          start client using: ./sockperf ping-pong -i <ip-address> -p <port> --playback=pfile
276
277   3.5 Usage
278   3.5.1 Running Multicast over IPoIB
279       • Configure the routing table to map multicast addresses to the IPoIB
280         interface on both client and server machines, as follows:
281
282       route add -net 224.0.0.0 netmask 240.0.0.0 dev ib0
283
284
285        In this case, ib0 is the IPoIB interface.
286
287       • Run the server as follows:
288
289       $sockperf server -i 224.18.7.81 -p 5001
290       sockperf: == version #3.5-no.git ==
291       sockperf: [SERVER] listen on:
292       [ 0] IP = 224.18.7.81     PORT =  5001 # UDP
293       sockperf: Warmup stage (sending a few dummy messages)...
294       sockperf: [tid 30399] using recvfrom() to block on socket(s)
295
296
297       • Run the client as follows:
298
299       $sockperf ping-pong -i 224.18.7.81 -p 5001 -m 16384 -t 10 --mps=max
300       sockperf: == version #3.5-no.git ==
301       sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
302
303       [ 0] IP = 224.18.7.81     PORT =  5001 # UDP
304       sockperf: Warmup stage (sending a few dummy messages)...
305       sockperf: Starting test...
306       sockperf: Test end (interrupted by timer)
307       sockperf: Test ended
308       sockperf: [Total Run] RunTime=10.000 sec; Warm up time=400 msec; SentMessages=240464; ReceivedMessages=240463
309       sockperf: ========= Printing statistics for Server No: 0
310       sockperf: [Valid Duration] RunTime=9.550 sec; SentMessages=229630; ReceivedMessages=229630
311       sockperf: ====> avg-lat= 20.771 (std-dev=5.266)
312       sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
313       sockperf: Summary: Latency is 20.771 usec
314       sockperf: Total 229630 observations; each percentile contains 2296.30 observations
315       sockperf: ---> <MAX> observation =  120.108
316       sockperf: ---> percentile 99.999 =  106.349
317       sockperf: ---> percentile 99.990 =   63.772
318       sockperf: ---> percentile 99.900 =   55.940
319       sockperf: ---> percentile 99.000 =   48.619
320       sockperf: ---> percentile 90.000 =   24.295
321       sockperf: ---> percentile 75.000 =   20.358
322       sockperf: ---> percentile 50.000 =   19.279
323       sockperf: ---> percentile 25.000 =   18.641
324       sockperf: ---> <MIN> observation =   16.748
325
326
327   3.5.2 Running TCP over Ethernet
328       • Run the server as follows:
329
330       $sockperf server -i 22.0.0.3 -p 5001 --tcp
331       sockperf: == version #3.5-no.git ==
332       sockperf: [SERVER] listen on:
333       [ 0] IP = 22.0.0.3        PORT =  5001 # TCP
334       sockperf: Warmup stage (sending a few dummy messages)...
335       sockperf: [tid 1567] using recvfrom() to block on socket(s)
336
337
338       • Run the client as follows:
339
340       $sockperf ping-pong -i 22.0.0.3 -p 5001 --tcp -m 64 -t 10 --mps=max
341       sockperf: == version #3.5-no.git ==
342       sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
343
344       [ 0] IP = 22.0.0.3        PORT =  5001 # TCP
345       sockperf: Warmup stage (sending a few dummy messages)...
346       sockperf: Starting test...
347       sockperf: Test end (interrupted by timer)
348       sockperf: Test ended
349       sockperf: [Total Run] RunTime=10.000 sec; Warm up time=400 msec; SentMessages=553625; ReceivedMessages=553624
350       sockperf: ========= Printing statistics for Server No: 0
351       sockperf: [Valid Duration] RunTime=9.550 sec; SentMessages=528579; ReceivedMessages=528579
352       sockperf: ====> avg-lat=  9.017 (std-dev=4.171)
353       sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
354       sockperf: Summary: Latency is 9.017 usec
355       sockperf: Total 528579 observations; each percentile contains 5285.79 observations
356       sockperf: ---> <MAX> observation =   98.777
357       sockperf: ---> percentile 99.999 =   72.628
358       sockperf: ---> percentile 99.990 =   17.980
359       sockperf: ---> percentile 99.900 =   16.824
360       sockperf: ---> percentile 99.000 =   16.193
361       sockperf: ---> percentile 90.000 =   14.731
362       sockperf: ---> percentile 75.000 =   14.301
363       sockperf: ---> percentile 50.000 =    6.222
364       sockperf: ---> percentile 25.000 =    5.759
365       sockperf: ---> <MIN> observation =    4.629
366
367
368   3.5.3 Running UDP over Ethernet using VMA
369       • More interested user can read detail information about VMA at
370         http://www.mellanox.com.
371
372       • VMA_SPEC=latency is a predefined specification profile for latency.
373
374       • Run the server as follows:
375
376       $VMA_SPEC=latency LD_PRELOAD=libvma.so sockperf server -i 22.0.0.3 -p 5001
377        VMA INFO: ---------------------------------------------------------------------------
378        VMA INFO: VMA_VERSION: 8.6.10-0 Development Snapshot built on Jun 27 2018 16:06:47
379        VMA INFO: Cmd Line: sockperf server -i 22.0.0.3 -p 5001
380        VMA INFO: Current Time: Tue Sep 18 08:49:23 2018
381        VMA INFO: Pid:  2201
382        VMA INFO: OFED Version: MLNX_OFED_LINUX-4.4-1.0.0.0:
383        VMA INFO: Architecture: x86_64
384        VMA INFO: Node: r-aa-apollo03.mtr.labs.mlnx
385        VMA INFO: ---------------------------------------------------------------------------
386        VMA INFO: VMA Spec                       Latency                    [VMA_SPEC]
387        VMA INFO: Log Level                      INFO                       [VMA_TRACELEVEL]
388        VMA INFO: Ring On Device Memory TX       16384                      [VMA_RING_DEV_MEM_TX]
389        VMA INFO: Tx QP WRE                      256                        [VMA_TX_WRE]
390        VMA INFO: Tx QP WRE Batching             4                          [VMA_TX_WRE_BATCHING]
391        VMA INFO: Rx QP WRE                      256                        [VMA_RX_WRE]
392        VMA INFO: Rx QP WRE Batching             4                          [VMA_RX_WRE_BATCHING]
393        VMA INFO: Rx Poll Loops                  -1                         [VMA_RX_POLL]
394        VMA INFO: Rx Prefetch Bytes Before Poll  256                        [VMA_RX_PREFETCH_BYTES_BEFORE_POLL]
395        VMA INFO: GRO max streams                0                          [VMA_GRO_STREAMS_MAX]
396        VMA INFO: Select Poll (usec)             -1                         [VMA_SELECT_POLL]
397        VMA INFO: Select Poll OS Force           Enabled                    [VMA_SELECT_POLL_OS_FORCE]
398        VMA INFO: Select Poll OS Ratio           1                          [VMA_SELECT_POLL_OS_RATIO]
399        VMA INFO: Select Skip OS                 1                          [VMA_SELECT_SKIP_OS]
400        VMA INFO: CQ Drain Interval (msec)       100                        [VMA_PROGRESS_ENGINE_INTERVAL]
401        VMA INFO: CQ Interrupts Moderation       Disabled                   [VMA_CQ_MODERATION_ENABLE]
402        VMA INFO: CQ AIM Max Count               128                        [VMA_CQ_AIM_MAX_COUNT]
403        VMA INFO: CQ Adaptive Moderation         Disabled                   [VMA_CQ_AIM_INTERVAL_MSEC]
404        VMA INFO: CQ Keeps QP Full               Disabled                   [VMA_CQ_KEEP_QP_FULL]
405        VMA INFO: TCP nodelay                    1                          [VMA_TCP_NODELAY]
406        VMA INFO: Avoid sys-calls on tcp fd      Enabled                    [VMA_AVOID_SYS_CALLS_ON_TCP_FD]
407        VMA INFO: Internal Thread Affinity       0                          [VMA_INTERNAL_THREAD_AFFINITY]
408        VMA INFO: Thread mode                    Single                     [VMA_THREAD_MODE]
409        VMA INFO: Mem Allocate type              2 (Huge Pages)             [VMA_MEM_ALLOC_TYPE]
410        VMA INFO: ---------------------------------------------------------------------------
411       sockperf: == version #3.5-no.git ==
412       sockperf: [SERVER] listen on:
413       [ 0] IP = 22.0.0.3        PORT =  5001 # UDP
414       sockperf: Warmup stage (sending a few dummy messages)...
415       sockperf: [tid 2201] using recvfrom() to block on socket(s)
416
417
418       • Run the client as follows:
419
420       $VMA_SPEC=latency LD_PRELOAD=libvma.so sockperf ping-pong -i 22.0.0.3 -p 5001 -m 64 -t 10 --mps=max
421        VMA INFO: ---------------------------------------------------------------------------
422        VMA INFO: VMA_VERSION: 8.6.10-0 Development Snapshot built on Jun 27 2018 16:06:47
423        VMA INFO: Cmd Line: sockperf ping-pong -i 22.0.0.3 -p 5001 -m 64 -t 10 --mps=max
424        VMA INFO: Current Time: Tue Sep 18 08:47:50 2018
425        VMA INFO: Pid: 20134
426        VMA INFO: OFED Version: MLNX_OFED_LINUX-4.4-1.0.0.0:
427        VMA INFO: Architecture: x86_64
428        VMA INFO: Node: r-aa-apollo04.mtr.labs.mlnx
429        VMA INFO: ---------------------------------------------------------------------------
430        VMA INFO: VMA Spec                       Latency                    [VMA_SPEC]
431        VMA INFO: Log Level                      INFO                       [VMA_TRACELEVEL]
432        VMA INFO: Ring On Device Memory TX       16384                      [VMA_RING_DEV_MEM_TX]
433        VMA INFO: Tx QP WRE                      256                        [VMA_TX_WRE]
434        VMA INFO: Tx QP WRE Batching             4                          [VMA_TX_WRE_BATCHING]
435        VMA INFO: Rx QP WRE                      256                        [VMA_RX_WRE]
436        VMA INFO: Rx QP WRE Batching             4                          [VMA_RX_WRE_BATCHING]
437        VMA INFO: Rx Poll Loops                  -1                         [VMA_RX_POLL]
438        VMA INFO: Rx Prefetch Bytes Before Poll  256                        [VMA_RX_PREFETCH_BYTES_BEFORE_POLL]
439        VMA INFO: GRO max streams                0                          [VMA_GRO_STREAMS_MAX]
440        VMA INFO: Select Poll (usec)             -1                         [VMA_SELECT_POLL]
441        VMA INFO: Select Poll OS Force           Enabled                    [VMA_SELECT_POLL_OS_FORCE]
442        VMA INFO: Select Poll OS Ratio           1                          [VMA_SELECT_POLL_OS_RATIO]
443        VMA INFO: Select Skip OS                 1                          [VMA_SELECT_SKIP_OS]
444        VMA INFO: CQ Drain Interval (msec)       100                        [VMA_PROGRESS_ENGINE_INTERVAL]
445        VMA INFO: CQ Interrupts Moderation       Disabled                   [VMA_CQ_MODERATION_ENABLE]
446        VMA INFO: CQ AIM Max Count               128                        [VMA_CQ_AIM_MAX_COUNT]
447        VMA INFO: CQ Adaptive Moderation         Disabled                   [VMA_CQ_AIM_INTERVAL_MSEC]
448        VMA INFO: CQ Keeps QP Full               Disabled                   [VMA_CQ_KEEP_QP_FULL]
449        VMA INFO: TCP nodelay                    1                          [VMA_TCP_NODELAY]
450        VMA INFO: Avoid sys-calls on tcp fd      Enabled                    [VMA_AVOID_SYS_CALLS_ON_TCP_FD]
451        VMA INFO: Internal Thread Affinity       0                          [VMA_INTERNAL_THREAD_AFFINITY]
452        VMA INFO: Thread mode                    Single                     [VMA_THREAD_MODE]
453        VMA INFO: Mem Allocate type              2 (Huge Pages)             [VMA_MEM_ALLOC_TYPE]
454        VMA INFO: ---------------------------------------------------------------------------
455       sockperf: == version #3.5-no.git ==
456       sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
457
458       [ 0] IP = 22.0.0.3        PORT =  5001 # UDP
459       sockperf: Warmup stage (sending a few dummy messages)...
460       sockperf: Starting test...
461       sockperf: Test end (interrupted by timer)
462       sockperf: Test ended
463       sockperf: [Total Run] RunTime=10.000 sec; Warm up time=400 msec; SentMessages=5166035; ReceivedMessages=5166034
464       sockperf: ========= Printing statistics for Server No: 0
465       sockperf: [Valid Duration] RunTime=9.550 sec; SentMessages=4951987; ReceivedMessages=4951987
466       sockperf: ====> avg-lat=  0.951 (std-dev=0.034)
467       sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
468       sockperf: Summary: Latency is 0.951 usec
469       sockperf: Total 4951987 observations; each percentile contains 49519.87 observations
470       sockperf: ---> <MAX> observation =    4.476
471       sockperf: ---> percentile 99.999 =    1.318
472       sockperf: ---> percentile 99.990 =    1.270
473       sockperf: ---> percentile 99.900 =    1.179
474       sockperf: ---> percentile 99.000 =    1.110
475       sockperf: ---> percentile 90.000 =    0.967
476       sockperf: ---> percentile 75.000 =    0.952
477       sockperf: ---> percentile 50.000 =    0.943
478       sockperf: ---> percentile 25.000 =    0.936
479       sockperf: ---> <MIN> observation =    0.895
480
481

4. LICENSING

483       Read 'copying' file in the root place.
484

5. INSTALLATION

486   5.1 Requirements
487       What you will need to compile sockperf on Unix systems
488
489       • perl 5.8+ (used by the automake tools)
490
491       • GNU make tools: automake 1.7+, autoconf 2.57+, m4 1.4+ and libtool
492         1.4+
493
494       • A Compiler, among those tested are:
495
496         • gcc4+ (Ubuntu)
497
498         • gcc4+ (Red Hat)
499
500   5.2 Options to compile
501   5.3 How to install
502       Download sockperf-<version>.tar.gz.
503
504       Uncompress *.tar.gz file in Unix systems in the same folder with the
505       file by runing the following command in the shell:
506
507       tar -zxvf sockperf-<version>.tar.gz
508
509
510        or 2 command:
511
512       gzip -d ./sockperf-<version>.tar.gz
513       tar -xf ./sockperf-<version>.tar
514
515
516       The sockperf package uses the GNU autotools compilation and
517       installation framework.
518
519       These are generic installation instructions.
520
521       The `configure' shell script attempts to guess correct values for
522       various system-dependent variables used during compilation. It uses
523       those values to create a `Makefile' in each directory of the package.
524       It may also create one or more `.h' files containing system-dependent
525       definitions. Finally, it creates a shell script `config.status' that
526       you can run in the future to recreate the current configuration, a file
527       `config.cache' that saves the results of its tests to speed up
528       reconfiguring, and a file `config.log' containing compiler output
529       (useful mainly for debugging `configure').
530
531       If you need to do unusual things to compile the package, please try to
532       figure out how `configure' could check whether to do them, and mail
533       diffs or instructions to the address given in the `README' so they can
534       be considered for the next release. If at some point `config.cache'
535       contains results you don't want to keep, you may remove or edit it.
536
537       The file `configure.in' is used to create `configure' by a program
538       called `autoconf'. You only need `configure.in' if you want to change
539       it or regenerate `configure' using a newer version of `autoconf'.
540
541       The simplest way to compile this package is:
542
543       1.  `cd' to the directory containing the package's source code and type
544           `./configure' to configure the package for your system. If you're
545           using `csh' on an old version of System V, you might need to type
546           `sh ./configure' instead to prevent `csh' from trying to execute
547           `configure' itself.
548
549       Running `configure' takes awhile. While running, it prints some
550       messages telling which features it is checking for.
551
552       $ ./configure --prefix=<path to install>
553
554
555       There are several options to ./config (or ./Configure) to customize the
556       build:
557
558       To enable test scripts
559
560       $ ./configure --prefix=<path to install> --enable-test
561
562
563       To enable the documentation
564
565       $ ./configure --prefix=<path to install> --enable-doc
566
567
568       To enable the special scripts
569
570       $ ./configure --prefix=<path to install> --enable-tool
571
572
573       To compile with debug symbols and information:
574
575       $ ./configure --prefix=<path to install> --enable-debug
576
577
578       This will define the _DEBUG variable at compile time.
579
580       Type './configure --help' for a list of all the configure options. Some
581       of the options are generic autoconf options, while the SockPerf
582       specific options are prefixed with 'SOCKPERF:' in the help text.
583
584       2.  Type `make' to compile the package.
585
586       $ make
587
588
589       3.  Optionally, type `make check' to run any self-tests that come with
590           the package.
591
592       4.  Type `make install' to install the programs and any data files and
593           documentation.
594
595       $ make install
596
597
598       5.  You can remove the program binaries and object files from the
599           source code directory by typing `make clean'. To also remove the
600           files that `configure' created (so you can compile the package for
601           a different kind of computer), type `make distclean'. There is also
602           a `make maintainer-clean' target, but that is intended mainly for
603           the package's developers. If you use it, you may have to get all
604           sorts of other programs in order to regenerate files that came with
605           the distribution.
606
607sockperf                         3.10-no.git"               sockperf(3Version)
Impressum