NAME¶
netperfmeter —
Network Performance
Meter
SYNOPSIS¶
netperfmeter |
[Destination:Port]
-local=Address[,Address,...]
-runtime=Seconds -config=Name
-scalar=Name -vector=Name
-activenodename=Description
-passivenodename=Description -quiet
-verbose -verbosity=Level
-tcp -udp -sctp
-dccp [FLOWSPEC]
[...] |
DESCRIPTION¶
netperfmeter is a network performance meter for the UDP, TCP,
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.
ARGUMENTS¶
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.
- local=Address[,Address,...]
- Specifies address(es) of the local endpoint. For TCP, UDP
and DCCP, 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).
- 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 connection. The flow of this connection
must be specified by a FLOWSPEC specification as following parameter.
- 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_size:incoming_frame_rate:option:...
The first four parameters
(outgoing_frame_rate:outgoing_frame_size:incoming_frame_size:incoming_frame_rate: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,...
- 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).
- 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.
- cmt=off|normal|rp|0-255
- Configures usage of Concurrent Multipath Transfer
(CMT): off (turned off), normal (independent paths), rp
(resource-pooled), 0-255 (custom value). Currently only supported
by CMT-SCTP on FreeBSD systems.
EXAMPLES¶
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.
AUTHORS¶
Thomas Dreibholz
http://www.iem.uni-due.de/~dreibh/netperfmeter
mailto://dreibh@iem.uni-due.de