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

NAME

6       sockperfSockPerf is a tool for network performance measurement written
7       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 endpoints,
17       either unidirectonally or bi-directionally. 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 maintance 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         recv/select/epoll/poll;
69
70       · Improved CPU utilization;
71
72       Initially the tool was developed to demonstrate advantages of VMA
73       (Voltaire Messaging Accelerator). VMA is is a multicast-offload,
74       dynamically linked, user space Linux library which serves to
75       transparently enhance the performance of multicast networking heavy
76       applications over the InfiniBand and 10 Gb 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 accelartion and see
79       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
83       roundtrip time is the route trip time (RTT) between the two machines on
84       a 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       $bin/sockperf server -i 224.18.7.81 -p 5001
99       sockperf:  == version #1.0.0 ==
100       sockperf: No VMA version info
101       sockperf: [SERVER] listen on: IP = 224.18.7.81 PORT = 5001
102       sockperf: Warmup stage (sending a few dummy packets)...
103       sockperf: [tid 14325] using recvfrom() to block on socket(s)
104
105
106        Mode Two:
107
108       $bin/sockperf server -f conf.file -F s
109       sockperf:  == version #2.5.1831 ==
110       sockperf: No VMA version info
111       sockperf: [SERVER] listen on:
112       [ 0] IP = 192.168.161.129 PORT =  7001 # TCP
113       [ 1] IP = 192.168.161.129 PORT =  7002 # TCP
114       [ 2] IP = 192.168.161.129 PORT =  7003 # TCP
115       [ 3] IP = 192.168.161.129 PORT =  7004 # TCP
116       sockperf: Warmup stage (sending a few dummy packets)...
117       sockperf: [tid 4857] using select() to block on socket(s)
118
119
120       Every line in feed file should have following format as
121
122       where
123        - [U|T] - UDP or TCP protocol;
124
125       · address - Internet Protocol (IP) address;
126
127       · port - Port number;
128
129   3.1 Available options
130       The following table describes sockperf options, and their possible
131       values:
132
133       -h,-?   --help,--usage         Show the help message and exit.
134       -d      --debug                Print extra debug information.
135       -i      --ip                   Listen on/send to ip <ip>.
136       -p      --port                 Listen on/connect to port <port> (default 11111).
137       -m      --msg-size             Use messages of size <size> bytes (minimum default 14).
138       -f      --file                 Read multiple ip+port combinations from file <file>
139                                      (will use IO muxer '-F' such as epoll, poll or select)
140       -F      --io-hanlder-type      Type of multiple file descriptors handle
141                                      [s|select|p|poll|e|epoll](default epoll).
142       -a      --activity             Measure activity by printing a '.' for the last
143                                      <N> packets processed.
144       -A      --Activity             Measure activity by printing the duration for last
145                                      <N> packets processed.
146               --rx-mc-if             <ip> address of interface on which to receive mulitcast
147                                      packets (can be other then route table).
148               --tx-mc-if             <ip> address of interface on which to transmit mulitcast
149                                      packets (can be other then route table).
150               --timeout              Set select/poll/epoll timeout to <msec>, -1 for infinite
151                                      (default is 10 msec).
152               --mc-loopback-enable   Enables mc loopback (default disabled).
153               --udp-buffer-size      Set udp buffer size to <size> bytes.
154               --vmazcopyread         If possible use VMA's zero copy reads API (See VMA's readme).
155               --daemonize            Run as daemon.
156               --nonblocked           Open non-blocked sockets.
157               --dontwarmup           Don't send warm up packets on start.
158               --pre-warmup-wait      Time to wait before sending warm up packets (seconds).
159               --no-rdtsc             Don't use register when taking time; instead use monotonic clock.
160               --load-vma             Load VMA dynamically even when LD_PRELOAD was not used.
161
162               --tcp                  Use TCP protocol (default UDP).
163               --avoid-tcp-nodelay    Delivering TCP Messages Immediately (default ON).
164               --mc-ttl               Limit the lifetime of the packet (default 2).
165
166
167   3.2 Server
168       Server options are:
169
170               --threads-num          Run <N> threads on server side (requires '-f' option).
171               --vmarxfiltercb        If possible use VMA's receive path packet filter
172                                      callback API (See VMA's readme).
173               --force-unicast-rep    Force server to reply via unicast.
174       -g      --gap-detection        Enable gap-detection.
175
176
177   3.3 Client
178       sockperf supports different scenarios to run itself as a client. There
179       are under-load, ping-pong, playback and throughput subcommands to
180       select one of the scenarios.
181
182       · under-load - run sockperf client for latency under load test;
183
184       · ping-pong - run sockperf client for latency test in ping pong mode;
185
186       · playback - run sockperf client for latency test using playback of
187         predefined traffic, based on timeline and message size;
188
189       · throughput - run sockperf client for one way throughput test;
190
191       General client options are:
192
193       -t      --time                 Run for <sec> seconds (default 1, max = 36000000).
194       -b      --burst                Control the client's number of a packets sent in every burst.
195       -r      --range                comes with -m <size>, randomly change the messages size in range: <size> +- <N>.
196               --data-integrity       Perform data integrity test.
197               --srv_num              Set num of servers the client works with to N.
198               --pps                  Set number of packets-per-second (default = 10000 - for under-load mode, or max -
199                                      for ping-pong and throughput modes; for maximum use --pps=max).
200               --sender-affinity      Set sender thread affinity to the given core id (see: cat /proc/cpuinfo).
201               --receiver-affinity    Set receiver thread affinity to the given core id (see: cat /proc/cpuinfo).
202               --full-log             Dump full log of all packets send/receive time to the given file in CSV format.
203
204
205   3.4 Tools
206       SockPerf package contains few scripts that allow to generate special
207       formatted file to launch tool in different configurations.
208
209       · filter.awk - can be used for filtering lines from the full log file
210         based on given latency range;
211
212       · gen1.awk - this awk script generates playback files (it is for stable
213         PPS playback file);
214
215       · gen2.awk - this awk script generates playback files using the input
216         for this script is file with lines of the format: startTime;
217         duration; startPPS; endPPS; msgSize (it is for linear increased and
218         decreased PPS playback file);
219
220          create playback file using gen1.awk > pfile
221          generated file:
222       # ==== playback file for sockperf - generated by gen1.awk ====
223       #baseTime=1.000000; PPS=200000; runtime=1.000000; interval=0.000005; NUM_RECORDS=200000
224       # file contains 200000 records
225       1.000005000, 12
226       1.000010000, 12
227       1.000015000, 12
228       1.000020000, 12
229       1.000025000, 12
230       1.000030000, 12
231       1.000035000, 12
232       1.000040000, 12
233       ...
234       1.999950000, 12
235       1.999955000, 12
236       1.999960000, 12
237       1.999965000, 12
238       1.999970000, 12
239       1.999975000, 12
240       1.999980000, 12
241       1.999985000, 12
242       1.999990000, 12
243       1.999995000, 12
244       2.000000000, 12
245       #200000 records were written successfuly
246          start server on ipX
247          start client using: ./sockperf ping-pong -i <ip-address> -p <port> --playback=pfile
248
249   3.5 Usage
250   3.5.1 Running over IPoIB
251       · Configure the routing table to map multicast addresses to the IPoIB
252         interface on both client and server machines, as follows:
253
254       route add -net 224.0.0.0 netmask 240.0.0.0 dev ib0
255
256
257        In this case, ib0 is the IPoIB interface.
258
259       · Run the server as follows:
260
261       $sockperf server -i 224.18.7.81 -p 5001
262       sockperf:  == version #1.0.0 ==
263       sockperf: No VMA version info
264       sockperf: [SERVER] listen on: IP = 224.18.7.81 PORT = 5001
265       sockperf: Warmup stage (sending a few dummy packets)...
266       sockperf: [tid 14325] using recvfrom() to block on socket(s)
267
268
269       · Run the client as follows:
270
271       $sockperf ping-pong -i 224.18.7.81 -p 5001 -m 16384 -t 10 --pps=max
272       sockperf:  == version #1.0.0 ==
273       sockperf: No VMA version info
274       sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
275        IP = 224.18.7.81 PORT = 5001
276       sockperf: Warmup stage (sending a few dummy packets)...
277       sockperf: Starting test...
278       sockperf: Test end (interrupted by timer)
279       sockperf: Test ended
280       sockperf: ========= Printing statistics for Server No: 0
281       sockperf: [including warmup] RunTime=10.101 sec; SentMessages=128328; ReceivedMessages=128327
282       sockperf: ====> avg-lat= 39.273 (std-dev=2.468)
283       sockperf: # dropped packets = 0; # duplicated packets = 0; # out-of-order packets = 0
284       sockperf: Summary: Latency is 39.273 usec
285       sockperf: Total 127245 observations; each percentile contains 1272.45 observations
286       sockperf: ---> <MAX> observation =   94.539
287       sockperf: ---> percentile  99.99 =   76.736
288       sockperf: ---> percentile  99.90 =   58.677
289       sockperf: ---> percentile  99.50 =   56.926
290       sockperf: ---> percentile  99.00 =   55.974
291       sockperf: ---> percentile  95.00 =   40.823
292       sockperf: ---> percentile  90.00 =   40.517
293       sockperf: ---> percentile  75.00 =   39.736
294       sockperf: ---> percentile  50.00 =   38.919
295       sockperf: ---> percentile  25.00 =   38.303
296       sockperf: ---> <MIN> observation =   36.438
297
298
299   3.5.2 Running over 1 Gb Ethernet
300       · Configure the routing table to map multicast addresses to the
301         Ethernet interface on both client and server machines, as follows:
302
303       route add -net 224.0.0.0 netmask 240.0.0.0 dev eth2
304
305
306        In this case, eth2 is the Ethernet interface.
307
308       · Run the server as follows:
309
310       $sockperf server -i 224.18.7.81 -p 5001
311       sockperf:  == version #1.0.0 ==
312       sockperf: No VMA version info
313       sockperf: [SERVER] listen on: IP = 224.18.7.81 PORT = 5001
314       sockperf: Warmup stage (sending a few dummy packets)...
315       sockperf: [tid 14325] using recvfrom() to block on socket(s)
316
317
318       · Run the client as follows:
319
320       $sockperf ping-pong -i 224.18.7.81 -p 5001 -m 16384 -t 10 --pps=max
321       sockperf:  == version #1.0.0 ==
322       sockperf: No VMA version info
323       sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
324        IP = 224.18.7.81 PORT = 5001
325       sockperf: Warmup stage (sending a few dummy packets)...
326       sockperf: Starting test...
327       sockperf: Test end (interrupted by timer)
328       sockperf: Test ended
329       sockperf: ========= Printing statistics for Server No: 0
330       sockperf: [including warmup] RunTime=10.101 sec; SentMessages=128328; ReceivedMessages=128327
331       sockperf: ====> avg-lat= 39.273 (std-dev=2.468)
332       sockperf: # dropped packets = 0; # duplicated packets = 0; # out-of-order packets = 0
333       sockperf: Summary: Latency is 39.273 usec
334       sockperf: Total 127245 observations; each percentile contains 1272.45 observations
335       sockperf: ---> <MAX> observation =   94.539
336       sockperf: ---> percentile  99.99 =   76.736
337       sockperf: ---> percentile  99.90 =   58.677
338       sockperf: ---> percentile  99.50 =   56.926
339       sockperf: ---> percentile  99.00 =   55.974
340       sockperf: ---> percentile  95.00 =   40.823
341       sockperf: ---> percentile  90.00 =   40.517
342       sockperf: ---> percentile  75.00 =   39.736
343       sockperf: ---> percentile  50.00 =   38.919
344       sockperf: ---> percentile  25.00 =   38.303
345       sockperf: ---> <MIN> observation =   36.438
346
347
348   3.5.3 Running over VMA InfiniBand
349       · Configure the routing table to map multicast addresses to the IPoIB
350         interface on both client and server machines, as follows:
351
352       route add -net 224.0.0.0 netmask 240.0.0.0 dev ib0
353
354
355        In this case, ib0 is the IPoIB interface.
356
357       · Run the server as follows:
358
359       $LD_PRELOAD=libvma.so sockperf server -i 224.18.7.81 -p 5001 --dontwarmup --mc-loopback-enable
360        VMA INFO   : -------------------------------------------------
361        VMA INFO   : Version: 4.0.3.0
362        VMA INFO   : Revision: 2087
363        VMA INFO   : Build Date: 2010-03-10-13:32:26
364        VMA INFO   : Current Time: Fri Feb 25 15:50:29 2011
365        VMA INFO   : Cmd Line: sockperf server -i 224.18.7.81 -p 5001 --dontwarmup --mc-loopback-enable
366        VMA INFO   : Pid: 29483
367        VMA INFO   : System: 2.6.18-164.el5
368        VMA INFO   : Architecture: x86_64
369        VMA INFO   : Node: mir1
370        VMA INFO   : ---------------------------------------------------------
371        VMA INFO   :  Log Level                3                [VMA_TRACELEVEL]
372        VMA INFO   :  Log Details              0                [VMA_LOG_DETAILS]
373        VMA INFO   :  Log File                                  [VMA_LOG_FILE]
374        VMA INFO   :  Log Colors               Enabled          [VMA_LOG_COLORS]
375        VMA INFO   :  SigIntr Ctrl-C Handle    Disabled         [VMA_HANDLE_SIGINTR]
376        VMA INFO   :  Tx Offload               Enabled          [VMA_TX_OFFLOAD]
377        VMA INFO   :  Tx Mem Bufs              1024             [VMA_TX_BUFS]
378        VMA INFO   :  Tx WR SGE                2                [VMA_TX_SGE]
379        VMA INFO   :  Tx Block Mode            0                [VMA_TX_BLOCK_MODE]
380        VMA INFO   :  Tx IP Checksum           Enabled          [VMA_TX_IP_CHECKSUM]
381        VMA INFO   :  Tx MC Loopback           Enabled          [VMA_TX_MC_LOOPBACK]
382        VMA INFO   :  Tx non-blocked eagains   Disabled         [VMA_TX_NONBLOCKED_EAGAINS]
383        VMA INFO   :  Tx Prefetch Bytes        256              [VMA_TX_PREFETCH_BYTES]
384        VMA INFO   :  Rx Offload               Enabled          [VMA_RX_OFFLOAD]
385        VMA INFO   :  Rx Mem Bufs              200000           [VMA_RX_BUFS]
386        VMA INFO   :  Rx QP WRE                16000            [VMA_RX_WRE]
387        VMA INFO   :  Rx Byte Min Limit        2000000          [VMA_RX_BYTES_MIN]
388        VMA INFO   :  Rx Poll Loops            1000             [VMA_RX_POLL]
389        VMA INFO   :  Rx Poll Init Loops       0                [VMA_RX_POLL_INIT]
390        VMA INFO   :  Rx Poll OS Ratio         10               [VMA_RX_POLL_OS_RATIO]
391        VMA INFO   :  Rx Poll Yield            Disabled         [VMA_RX_POLL_YIELD]
392        VMA INFO   :  Rx Skip OS               100              [VMA_RX_SKIP_OS]
393        VMA INFO   :  Rx Prefetch Bytes        256              [VMA_RX_PREFETCH_BYTES]
394        VMA INFO   :  Rx CQ Drain Rate         Disabled         [VMA_RX_CQ_DRAIN_RATE_NSEC]
395        VMA INFO   :  Select Poll (usec)       100              [VMA_SELECT_POLL]
396        VMA INFO   :  Select Poll OS Force     Disabled         [VMA_SELECT_POLL_OS_FORCE]
397        VMA INFO   :  Select Poll OS Ratio     10               [VMA_SELECT_POLL_OS_RATIO]
398        VMA INFO   :  Select Poll Yield        Disabled         [VMA_SELECT_POLL_YIELD]
399        VMA INFO   :  Select Skip OS           4                [VMA_SELECT_SKIP_OS]
400        VMA INFO   :  Select CQ Interrupts     Enabled          [VMA_SELECT_CQ_IRQ]
401        VMA INFO   :  CQ size (max)            65000            [VMA_CQ_SIZE_MAX]
402        VMA INFO   :  CQ Poll Batch (max)      16               [VMA_CQ_POLL_BATCH_MAX]
403        VMA INFO   :  CQ Drain Interval (msec) 10               [VMA_CQ_DRAIN_INTERVAL]
404        VMA INFO   :  CQ Drain WCE (max)       10000            [VMA_CQ_DRAIN_WCE_MAX]
405        VMA INFO   :  CQ Keeps QP Full         Enabled          [VMA_CQ_KEEP_QP_FULL]
406        VMA INFO   :  QP Compensation Level    256              [VMA_QP_COMPENSATION_LEVEL]
407        VMA INFO   :  QP MC Attach             Disabled         [VMA_QP_FORCE_MC_ATTACH]
408        VMA INFO   :  Timer Resolution (msec)  10               [VMA_TIMER_RESOLUTION_MSEC]
409        VMA INFO   :  Delay after join (msec)  0                [VMA_WAIT_AFTER_JOIN_MSEC]
410        VMA INFO   :  Delay after rereg (msec) 500              [VMA_WAIT_AFTER_REREG_MSEC]
411        VMA INFO   :  SL PBITS Override        Disabled         [VMA_SL_PBITS_OVERRIDE]
412        VMA INFO   :  Block UDP Port           53               [VMA_BLOCK_UDP_PORT]
413        VMA INFO   :  UC Offload               Disabled         [VMA_UC_OFFLOAD]
414        VMA INFO   :  Thread Mode              Multi            [VMA_THREAD_MODE]
415        VMA INFO   :  Huge Pages               Enabled          [VMA_HUGETBL]
416        VMA INFO   :  IGMP support             Disabled         [VMA_IGMP]
417        VMA INFO   :  fork() support           Disabled         [VMA_FORK]
418        VMA INFO   :  MTU                      1500             [VMA_MTU]
419        VMA INFO   : ---------------------------------------------------------
420        VMA WARNING: ***************************************************************
421        VMA WARNING: * NO IMMEDIATE ACTION NEEDED!                                 *
422        VMA WARNING: * Not enough hugepage resources for VMA memory allocation.    *
423        VMA WARNING: * VMA will continue working with regular memory allocation.   *
424        VMA INFO   : * Optional: 1. Disable VMA's hugepage support (VMA_HUGETBL=0) *
425        VMA INFO   : *           2. Restart process after increasing the number of *
426        VMA INFO   : *              hugepages resources in the system:             *
427        VMA INFO   : * "cat /proc/meminfo |  grep -i HugePage"                     *
428        VMA INFO   : * "echo 1000000000 > /proc/sys/kernel/shmmax"                 *
429        VMA INFO   : * "echo 400 > /proc/sys/vm/nr_hugepages"                      *
430        VMA WARNING: * Read more about the Huge Pages in the VMA's User Manual     *
431        VMA WARNING: ***************************************************************
432       sockperf: [2;35m == version #2.3.1831 == [0m
433       sockperf: No VMA version info
434       sockperf: [SERVER] listen on:
435       [ 0] IP = 224.18.7.81     PORT =  5001 # UDP
436       sockperf: [tid 29483] using recvfrom() to block on socket(s)
437
438
439       · Run the client as follows:
440
441       $$LD_PRELOAD=libvma.so sockperf ping-pong -i 224.18.7.81 -p 5001 -t 10 -m 14 --pps=max --dontwarmup --mc-loopback-enable
442        VMA INFO   : -------------------------------------------------
443        VMA INFO   : Version: 4.0.3.0
444        VMA INFO   : Revision: 2087
445        VMA INFO   : Build Date: 2010-03-10-13:32:26
446        VMA INFO   : Current Time: Fri Feb 25 15:50:51 2011
447        VMA INFO   : Cmd Line: sockperf ping-pong -i 224.18.7.81 -p 5001 -t 10 -m 14 --pps=max --dontwarmup --mc-loopback-enable
448        VMA INFO   : Pid:  3690
449        VMA INFO   : System: 2.6.18-164.el5
450        VMA INFO   : Architecture: x86_64
451        VMA INFO   : Node: mir3
452        VMA INFO   : ---------------------------------------------------------
453        VMA INFO   :  Log Level                3                [VMA_TRACELEVEL]
454        VMA INFO   :  Log Details              0                [VMA_LOG_DETAILS]
455        VMA INFO   :  Log File                                  [VMA_LOG_FILE]
456        VMA INFO   :  Log Colors               Enabled          [VMA_LOG_COLORS]
457        VMA INFO   :  SigIntr Ctrl-C Handle    Disabled         [VMA_HANDLE_SIGINTR]
458        VMA INFO   :  Tx Offload               Enabled          [VMA_TX_OFFLOAD]
459        VMA INFO   :  Tx Mem Bufs              1024             [VMA_TX_BUFS]
460        VMA INFO   :  Tx WR SGE                2                [VMA_TX_SGE]
461        VMA INFO   :  Tx Block Mode            0                [VMA_TX_BLOCK_MODE]
462        VMA INFO   :  Tx IP Checksum           Enabled          [VMA_TX_IP_CHECKSUM]
463        VMA INFO   :  Tx MC Loopback           Enabled          [VMA_TX_MC_LOOPBACK]
464        VMA INFO   :  Tx non-blocked eagains   Disabled         [VMA_TX_NONBLOCKED_EAGAINS]
465        VMA INFO   :  Tx Prefetch Bytes        256              [VMA_TX_PREFETCH_BYTES]
466        VMA INFO   :  Rx Offload               Enabled          [VMA_RX_OFFLOAD]
467        VMA INFO   :  Rx Mem Bufs              200000           [VMA_RX_BUFS]
468        VMA INFO   :  Rx QP WRE                16000            [VMA_RX_WRE]
469        VMA INFO   :  Rx Byte Min Limit        2000000          [VMA_RX_BYTES_MIN]
470        VMA INFO   :  Rx Poll Loops            1000             [VMA_RX_POLL]
471        VMA INFO   :  Rx Poll Init Loops       0                [VMA_RX_POLL_INIT]
472        VMA INFO   :  Rx Poll OS Ratio         10               [VMA_RX_POLL_OS_RATIO]
473        VMA INFO   :  Rx Poll Yield            Disabled         [VMA_RX_POLL_YIELD]
474        VMA INFO   :  Rx Skip OS               100              [VMA_RX_SKIP_OS]
475        VMA INFO   :  Rx Prefetch Bytes        256              [VMA_RX_PREFETCH_BYTES]
476        VMA INFO   :  Rx CQ Drain Rate         Disabled         [VMA_RX_CQ_DRAIN_RATE_NSEC]
477        VMA INFO   :  Select Poll (usec)       100              [VMA_SELECT_POLL]
478        VMA INFO   :  Select Poll OS Force     Disabled         [VMA_SELECT_POLL_OS_FORCE]
479        VMA INFO   :  Select Poll OS Ratio     10               [VMA_SELECT_POLL_OS_RATIO]
480        VMA INFO   :  Select Poll Yield        Disabled         [VMA_SELECT_POLL_YIELD]
481        VMA INFO   :  Select Skip OS           4                [VMA_SELECT_SKIP_OS]
482        VMA INFO   :  Select CQ Interrupts     Enabled          [VMA_SELECT_CQ_IRQ]
483        VMA INFO   :  CQ size (max)            65000            [VMA_CQ_SIZE_MAX]
484        VMA INFO   :  CQ Poll Batch (max)      16               [VMA_CQ_POLL_BATCH_MAX]
485        VMA INFO   :  CQ Drain Interval (msec) 10               [VMA_CQ_DRAIN_INTERVAL]
486        VMA INFO   :  CQ Drain WCE (max)       10000            [VMA_CQ_DRAIN_WCE_MAX]
487        VMA INFO   :  CQ Keeps QP Full         Enabled          [VMA_CQ_KEEP_QP_FULL]
488        VMA INFO   :  QP Compensation Level    256              [VMA_QP_COMPENSATION_LEVEL]
489        VMA INFO   :  QP MC Attach             Disabled         [VMA_QP_FORCE_MC_ATTACH]
490        VMA INFO   :  Timer Resolution (msec)  10               [VMA_TIMER_RESOLUTION_MSEC]
491        VMA INFO   :  Delay after join (msec)  0                [VMA_WAIT_AFTER_JOIN_MSEC]
492        VMA INFO   :  Delay after rereg (msec) 500              [VMA_WAIT_AFTER_REREG_MSEC]
493        VMA INFO   :  SL PBITS Override        Disabled         [VMA_SL_PBITS_OVERRIDE]
494        VMA INFO   :  Block UDP Port           53               [VMA_BLOCK_UDP_PORT]
495        VMA INFO   :  UC Offload               Disabled         [VMA_UC_OFFLOAD]
496        VMA INFO   :  Thread Mode              Multi            [VMA_THREAD_MODE]
497        VMA INFO   :  Huge Pages               Enabled          [VMA_HUGETBL]
498        VMA INFO   :  IGMP support             Disabled         [VMA_IGMP]
499        VMA INFO   :  fork() support           Disabled         [VMA_FORK]
500        VMA INFO   :  MTU                      1500             [VMA_MTU]
501        VMA INFO   : ---------------------------------------------------------
502        VMA WARNING: ***************************************************************
503        VMA WARNING: * NO IMMEDIATE ACTION NEEDED!                                 *
504        VMA WARNING: * Not enough hugepage resources for VMA memory allocation.    *
505        VMA WARNING: * VMA will continue working with regular memory allocation.   *
506        VMA INFO   : * Optional: 1. Disable VMA's hugepage support (VMA_HUGETBL=0) *
507        VMA INFO   : *           2. Restart process after increasing the number of *
508        VMA INFO   : *              hugepages resources in the system:             *
509        VMA INFO   : * "cat /proc/meminfo |  grep -i HugePage"                     *
510        VMA INFO   : * "echo 1000000000 > /proc/sys/kernel/shmmax"                 *
511        VMA INFO   : * "echo 400 > /proc/sys/vm/nr_hugepages"                      *
512        VMA WARNING: * Read more about the Huge Pages in the VMA's User Manual     *
513        VMA WARNING: ***************************************************************
514       sockperf: [2;35m == version #2.3.1831 == [0m
515       sockperf: No VMA version info
516       sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
517
518       [ 0] IP = 224.18.7.81     PORT =  5001 # UDP
519       sockperf: Starting test...
520       sockperf: Test end (interrupted by timer)
521       sockperf: Test ended
522       sockperf: ========= Printing statistics for Server No: 0
523       sockperf: [including warmup] RunTime=10.101 sec; SentMessages=1055837; ReceivedMessages=1055836
524       sockperf: [2;35m====> avg-lat=  4.763 (std-dev=16.094)[0m
525       sockperf: # dropped packets = 0; # duplicated packets = 0; # out-of-order packets = 0
526       sockperf: Summary: Latency is 4.763 usec
527       sockperf: [2;35mTotal 1045405 observations[0m; each percentile contains 10454.05 observations
528       sockperf: ---> <MAX> observation = 16314.458
529       sockperf: ---> percentile  99.99 =   41.409
530       sockperf: ---> percentile  99.90 =    6.868
531       sockperf: ---> percentile  99.50 =    6.627
532       sockperf: ---> percentile  99.00 =    6.464
533       sockperf: ---> percentile  95.00 =    5.033
534       sockperf: ---> percentile  90.00 =    4.799
535       sockperf: ---> percentile  75.00 =    4.734
536       sockperf: ---> percentile  50.00 =    4.679
537       sockperf: ---> percentile  25.00 =    4.632
538       sockperf: ---> <MIN> observation =    3.529
539
540

4. LICENSING

542       Read 'copying' file in the root place.
543

5. INSTALLATION

545   5.1 Requirements
546       What you will need to compile sockperf on Unix systems
547
548       · perl 5.8+ (used by the automake tools)
549
550       · GNU make tools: automake 1.7+, autoconf 2.57+, m4 1.4+ and libtool
551         1.4+
552
553       · A Compiler, among those tested are:
554
555         · gcc4 (Ubuntu 9)
556
557         · gcc4 (Red Hat 4.x)
558
559   5.2 Options to compile
560   5.3 How to install
561       Download sockperf-<version>.tar.gz.
562
563       Uncompress *.tar.gz file in Unix systems in the same folder with the
564       file by runing the following command in the shell:
565
566       tar -zxvf sockperf-<version>.tar.gz
567
568
569        or 2 command:
570
571       gzip -d ./sockperf-<version>.tar.gz
572       tar -xf ./sockperf-<version>.tar
573
574
575       The sockperf package uses the GNU autotools compilation and
576       installation framework.
577
578       These are generic installation instructions.
579
580       The `configure' shell script attempts to guess correct values for
581       various system-dependent variables used during compilation. It uses
582       those values to create a `Makefile' in each directory of the package.
583       It may also create one or more `.h' files containing system-dependent
584       definitions. Finally, it creates a shell script `config.status' that
585       you can run in the future to recreate the current configuration, a file
586       `config.cache' that saves the results of its tests to speed up
587       reconfiguring, and a file `config.log' containing compiler output
588       (useful mainly for debugging `configure').
589
590       If you need to do unusual things to compile the package, please try to
591       figure out how `configure' could check whether to do them, and mail
592       diffs or instructions to the address given in the `README' so they can
593       be considered for the next release. If at some point `config.cache'
594       contains results you don't want to keep, you may remove or edit it.
595
596       The file `configure.in' is used to create `configure' by a program
597       called `autoconf'. You only need `configure.in' if you want to change
598       it or regenerate `configure' using a newer version of `autoconf'.
599
600       The simplest way to compile this package is:
601
602       1.  `cd' to the directory containing the package's source code and type
603           `./configure' to configure the package for your system. If you're
604           using `csh' on an old version of System V, you might need to type
605           `sh ./configure' instead to prevent `csh' from trying to execute
606           `configure' itself.
607
608       Running `configure' takes awhile. While running, it prints some
609       messages telling which features it is checking for.
610
611       $ ./configure --prefix=<path to install>
612
613
614       There are several options to ./config (or ./Configure) to customize the
615       build:
616
617       To enable test scripts
618
619       $ ./configure --prefix=<path to install> --enable-test
620
621
622       To enable the documentation
623
624       $ ./configure --prefix=<path to install> --enable-doc
625
626
627       To enable the special scripts
628
629       $ ./configure --prefix=<path to install> --enable-tool
630
631
632       To compile with debug symbols and information:
633
634       $ ./configure --prefix=<path to install> --enable-debug
635
636
637       This will define the _DEBUG variable at compile time.
638
639       Type './configure --help' for a list of all the configure options. Some
640       of the options are generic autoconf options, while the SockPerf
641       specific options are prefixed with 'SOCKPERF:' in the help text.
642
643       2.  Type `make' to compile the package.
644
645       $ make
646
647
648       3.  Optionally, type `make check' to run any self-tests that come with
649           the package.
650
651       4.  Type `make install' to install the programs and any data files and
652           documentation.
653
654       $ make install
655
656
657       5.  You can remove the program binaries and object files from the
658           source code directory by typing `make clean'. To also remove the
659           files that `configure' created (so you can compile the package for
660           a different kind of computer), type `make distclean'. There is also
661           a `make maintainer-clean' target, but that is intended mainly for
662           the package's developers. If you use it, you may have to get all
663           sorts of other programs in order to regenerate files that came with
664           the distribution.
665
666Version 3.5-no.git              Wed Aug 1 2018                     sockperf(3)
Impressum