|
|
| |
netperfmeter(1) |
FreeBSD General Commands Manual |
netperfmeter(1) |
netperfmeter —
Network Performance Meter
netperfmeter |
[Destination:Port] -control-over-tcp
-local=Address[,Address,...]
-controllocal=Address[,Address,...]
-runtime=Seconds
-config=Name -scalar=Name
-vector=Name
-activenodename=Description
-passivenodename=Description
-quiet -verbose
-verbosity=Level -v6only
-pathmgr=name
-scheduler=name
-sndbuf=bytes
-rcvbuf=bytes -tcp
-sctp -udp
-dccp [FLOWSPEC] [...] |
netperfmeter is a network performance meter for the UDP,
TCP, MPTCP, SCTP and DCCP transport protocols. It simultaneously transmits
bidirectional flows to an endpoint and measures the resulting flow bandwidths.
The results are written as vector and scalar files.
The following arguments have to be provided:
- Port
- The port number for the passive side's data socket. The port number of the
control socket will be port+1. Specifying a port number turns netperfmeter
in passive mode, i.e. it will wait for incoming connections.
- Destination:Port
- Specifies the destination endpoint to connect to. This will turn
netperfmeter in active mode, i.e. it will connect to the specified remote
endpoint.
-control-over-tcp
- Use TCP instead of SCTP for the control connection. This is useful for NAT
traversal.
-local=Address[,Address,...]
- Specifies address(es) of the local *data* endpoint. For TCP, UDP and DCCP,
only the first address is used! On an active node, this option applies to
the following flows, i.e. it must be set before specifying a flow!
-controllocal=Address[,Address,...]
- Specifies address(es) of the local *control* endpoint (SCTP or TCP). For
TCP, only the first address is used!
-runtime
- Specifies the measurement runtime in seconds. After the given time span,
netperfmeter will finish the measurement.
-config=Name
- Specifies the name of the configuration file to write. Default is
output.config.
-vector=Name
- Specifies the name pattern of the vector files to write. If the suffix of
this name is .bz2, the file will be BZip2-compressed on the fly. The
vector name is automatically extended to name the flow vector files by
adding -<active|passive>-<flow_id>-<stream_id> before
the suffix. Default is vector.vec.bz2, hence the name of the vector file
for flow 5, stream 2 on the passive node will be
vector-passive-00000005-0002.vec.bz2.
-scalar=Name
- Specifies the name pattern of the scalar files to write. If the suffix of
this name is .bz2, the file will be BZip2-compressed on the fly. The
scalar name is automatically extended to name the flow scalar files by
adding -<active|passive>-<flow_id>-<stream_id> before
the suffix. Default is scalar.vec.bz2, hence the name of the scalar file
for flow 5, stream 2 on the passive node will be
scalar-passive-00000005-0002.vec.bz2.
-activenodename=Description
- Sets a textual description of the active node (e.g. Client).
-passivenodename=Description
- Sets a textual description of the passive node (e.g. Server).
-quiet
- Reduces verbosity of log output. May be specified multiple times.
-verbose
- Increases verbosity of log output. May be specified multiple times.
-verbosity=Level
- Sets the verbosity of the log output to a given level, from 0 (lowest) to
6 (highest).
-v6only
- Use sockets with IPv6 only (by setting IPV6_V6ONLY socket option).
-pathmgr=name
- Set MPTCP path manager for the passive node (MPTCP for Linux only.
Requires socket options kernel patch!). On an active node, this option
applies to the following flows, i.e. it must be set before specifying a
flow!
-scheduler=name
- Set MPTCP scheduler for the passive node (MPTCP for Linux only. Requires
socket options kernel patch!). On an active node, this option applies to
the following flows, i.e. it must be set before specifying a flow!
- rcvbuf=bytes
- Sets the receiver buffer size (on the listening socket) to the given
number of bytes.
- sndbuf=bytes
- Sets the sender buffer size (on the listening socket) to the given number
of bytes.
-sctp
- Establish a new SCTP association. The streams of this association must be
specified by one or more FLOWSPEC specifications as following
parameters.
-tcp
- Establish a new TCP or MPTCP connection. The flow of this connection must
be specified by a FLOWSPEC specification as following parameter. MPTCP
support in NetPerfMeter is realized as additional "MPTCP" socket
(i.e. another TCP socket, but bound to another port number and with CMT
enabled). That is, for MPTCP usage, it must contain the option cmt=mptcp
(see below) to usage the MPTCP socket instead of the TCP socket.
-udp
- Establish a new UDP connection. The flow of this connection must be
specified by a FLOWSPEC specification as following parameter.
-dccp
- Establish a new DCCP connection. The flow of this connection must be
specified by a FLOWSPEC specification as following parameter. Note, that
DCCP is not available on all platforms yet. Currently, only Linux provides
DCCP in its official kernel.
- FLOWSPEC
- Specifies a new flow. The format is:
outgoing_frame_rate:outgoing_frame_size:incoming_frame_rate:incoming_frame_size:option:...
The first four parameters
(outgoing_frame_rate:outgoing_frame_size:incoming_frame_rate:incoming_frame_size:option)
may be substituted by the option "default", creating a flow with
some more or less useful default parameters.
- outgoing_frame_rate
- The frame rate of the outgoing transfer (i.e. active node to passive
node). If set to const0, the sender will be saturarted, i.e. it will
try to send as much as possible.
- outgoing_frame_size
- The frame size of the outgoing transfer (i.e. active node to passive
node). If set to const0, there will be *no* data transmission in this
direction.
- incoming_frame_rate
- The frame rate of the incoming transfer (i.e. passive node to active
node). See outgoing_frame_rate for details.
- incoming_frame_size
- The frame size of the incoming transfer (i.e. active node to passive
node). See outgoing_frame_size for details.
- Possible options:
-
- id=Flow Identifier
- Sets an ID number for the flow. The IDs within a measurement must
be unique!
- description=Description
- Sets a textual description of the flow (e.g. HTTP-Flow). Do not
use spaces in the description!
- maxmsgsize=Bytes
- Splits frames into messages of at most the given number of bytes.
Messages may not exceed 65535 bytes.
- defragtimeout=Milliseconds
- Messages not received within this timeout after the last
successfully received message are accounted as lost. NOTE: this
also happens if the transport protocol is reliable and the message
is actually received later!
- unordered=Fraction
- Specifies the fraction of the messages that will be sent in
unordered mode (SCTP only).
- ordered=Fraction
- Specifies the fraction of the messages that will be sent in
ordered mode (SCTP only).
- reliable=Fraction
- Specifies the fraction of the messages that will be sent in
reliable mode (SCTP only).
- unreliable=Fraction
- Specifies the fraction of the messages that will be sent in
unreliable mode (SCTP only).
- rtx_timeout=Milliseconds
- Sets the retransmission timeout for unreliable messages (SCTP
only; not available on all platforms!)
- rtx_trials=Trials
- Sets the retransmission trials for unreliable messages (SCTP only;
not available on all platforms!)
- rcvbuf=Bytes
- Sets the receiver buffer size to the given number of bytes.
- sndbuf=Bytes
- Sets the sender buffer size to the given number of bytes.
- onoff=t1,t2,...[,repeat]
- A list of time stamps when the flow should be activated or
deactivated. If onoff is given, the flow is off at startup. At t1,
it will be turned on; at t2, it will be turned off, etc.. Time
stamps can be given as absolute values (e.g. onoff=0,10,30 - to
turn on at t=0, turn off at t=10 and turn on again at t=30 until
end of measurement) or relative values (e.g. on=10,+30,+60 - to
turn on at t=10, turn off at t=40 and turn on again at t=100 until
end of measurement). A repetition of the list is possible with the
keyword "repeat" at the end of the list. Then, all
values need to be relative values and the number of items must be
even.
- error_on_abort=on|off
- By default, the active side stops with an error when a
transmission tails (e.g. on connection abort). This parameter
turns this behaviour on or off.
- nodelay=on|off
- Deactivate Nagle algorithm (TCP and SCTP only; default: off).
- debug=on|off
- Set debug mode on socket (currently: MPTCP for Linux only.
Requires socket options kernel patch!).
- ndiffports=number
- Set number of different MPTCP subflows (MPTCP for Linux only.
Requires socket options kernel patch!).
-v6only
- Use socket with IPv6 only (by setting IPV6_V6ONLY socket
option).
- pathmgr=name
- Set MPTCP path manager (MPTCP for Linux only. Requires socket
options kernel patch!).
- scheduler=name
- Set MPTCP scheduler (MPTCP for Linux only. Requires socket options
kernel patch!).
- cc=name
- Set congestion control name (TCP and MPTCP for Linux only).
- cmt=off|cmt|cmtrpv1|cmtrpv2|like-mptcp|mptcp-like|mptcp
- Configures usage of Concurrent Multipath Transfer (CMT): off
(turned off; default), cmt (independent paths), cmtrpv1
(CMT/RPv1), cmtrpv1 (CMT/RPv2), mptcp/like-mptcp/mptcp-like
(MPTCP), 0-255 (custom value). Currently only supported by
CMT-SCTP on FreeBSD systems and MPTCP on Linux systems. Note: CMT
for MPTCP always uses MPTCP congestion control.
Some netperfmeter usage examples:
- netperfmeter 9000
- Start in passive mode, i.e. accepting connections, on port 9000.
- netperfmeter 172.16.255.254:9000 -vector=output.vec.bz2
-scalar=output.sca.bz2 -sctp
const5:exp1000:const3:exp500:description="Alpha":onoff=+10
const5:exp1000:const3:exp500:description="Beta":onoff=+30 -tcp
const5:exp1000:const3:exp500:description="Gamma":onoff=+60
-runtime=300
- Start in active mode, i.e. establish connection to 172.16.255.254, port
9000. Frames will be segmented into messages of up to 4096 bytes. Write
vectors to output.vec.bz2 (BZip2-compressed). Write scalars to
output.sca.bz2 (BZip2-compressed). Establish SCTP association. At t=10s,
start flow "Alpha" as first stream of this association, using a
frame rate of 5 (constant) and average frame size of 1000 bytes (negative
exponential distribution) for the outgoing data and a frame rate of 3
(constant) and average frame size of 500 bytes (negative exponential
distribution) for the incoming data. At t=30s, start flow "Beta"
as second stream on the SCTP association (same parameters as flow
"Alpha"). Start TCP connection. At t=60s, start flow
"Gamma" over the TCP connection (same parameters as flow
"Alpha"). At t=300s, stop the measurement.
- netperfmeter 172.16.255.254:9000 -control-over-tcp -tcp
const2:const1000
- Start in active mode, i.e. establish connection to 172.16.255.254, port
9000. The control connection uses TCP instead of SCTP.
Thomas Dreibholz
https://www.uni-due.de/~be0001/netperfmeter
mailto://dreibh@iem.uni-due.de
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |