Restore Submenu

NAME

        flowgrind - network performance measurement tool
 
 

SYNOPSIS

        flowgrind -h|-s|-v
        flowgrind [general options] [flow options]
 
 

DESCRIPTION

        flowgrind  is a distributed network performance measurement tool. Using
        the flowgrind controller, tests can  be  setup  between  hosts  running
        flowgrindd, the flowgrind daemon.
 
        Flowgrind  performs  extensive  TCP tests. On systems running the Linux
        kernel flowgrind collects and reports the TCP metrics returned  by  the
        TCP_INFO  socket  option,  such as the size of the congestion window or
        the RTT.
 
        Each test connection is called a flow and flowgrindd has to be  running
        on  every  host  that  supped to be a flow endpoint. The flowgrind con‐
        troller only sets up the flows  as  well  as  gathers  and  prints  the
        results.  The  controller  does however not actually participate in the
        test.
 
 

OPTIONS

    General information
        Two important groups  of  options  are  the  global  options  and  flow
        options.  Like  the  name  suggests,  global options apply globally and
        potentially affect all flows. Flow-specific options only apply  to  the
        subset of flows selected using the -F option.
 
    Miscallaneous
        -h     Show help and exit.
 
        -s     Show help for socket options and exit.
 
        -v     Print version information and exit.
 
    General options
        -a     Advanced statistics, only if compiled with libpcap support.
 
        -b mean1,mean2,mean3
        -b lwr_bound1,upr_bound1,lwr_bound2,upr_bound2,lwr_bound3,upr_bound3
               Perform  Anderson-Darling  Test  for exponential distribution OR
               lower and upper bounds for computing the test for  uniform  dis‐
               tribution with the given bounds. Test data always generated from
               first flow.
 
        -c +begin,+end,+thrpt,+rtt,+iat,+kernel
               Comma separated list of column groups to display in output. Pre‐
               fix  with either + to show column group, - to hide column group.
 
        -d     Increase debugging verbosity. Add option multiple  times  to  be
               even  more verbose. Only available if compiled with DEBUG define
               set.
 
        -e PREFIX
               Prepend PREFIX to log filename (default: "flowlog-").
 
        -i #.# Reporting interval in seconds (default: 0.05s).
 
        -l NAME
               Use log filename NAME instead. If not specified the current time
               is used for the filename.
 
        -m     Report   throughput   in   2**20  bytes/second  (default:  10**6
               bit/sec).
 
        -n #   Number of test flows (default: 1).
 
        -o     Overwrite existing log files (default: don’t).
 
        -q     Be quiet, do not log to screen (default: off).
 
        -w     Write output to logfile (default: off).
 
    Flow options
        All flows have two endpoints, a source and a destination. The  distinc‐
        tion  between  source and destination endpoints only affects connection
        establishment. When starting a flow the destination endpoint listens on
        a  socket  and  the source endpoint connects to it. For the actual test
        this makes no difference, both endpoints have exactly the same capabil‐
        ities.  Data  can  be sent in either direction and many settings can be
        configured individually for each endpoint.
 
        Some of these options take the flow endpoint as argument. Is is denoted
        by  ’x’  in the option syntax. ’x’ needs to be replaced with either ’s’
        for the source endpoint, ’d’ for the destination endpoint  or  ’b’  for
        both  endpoints.  To specify different values for both endpoints, sepa‐
        rate them by comma.
 
        Example: -T s=5,d=10
 
        -B x=# Set requested sending buffer in bytes.
 
        -C x   Stop flow if it is experiencing local congestion.
 
        -D x=DSCP
               DSCP value for type-of-service IP header byte.
 
        -E x   Enumerate bytes in payload (default: don’t).
 
        -F #[,#]*
               Comma-separated list of  flows.   Flow  options  following  this
               option apply only to the specified flows.  Useful in combination
               with -n to set specific options for  certain  flows.   Numbering
               starts  with  0,  so  -F  1 refers to the second flow.  All flow
               options before the first -F apply to all flows.
 
        -H x=HOST[/RPCADDRESS[:PORT][/REPLYADDRESS]]
               Test from/to HOST. Optional argument is the address and port  of
               the  RPC server.  Third address is for the reply connection.  An
               endpoint that isn’t specified is assumed to be localhost.
 
        -L x   Call connect() on test socket  immediately  before  starting  to
               send  data (late connect).  If not specified the test connection
               is established in the preparation phase before the test  starts.
 
        -N x   Call shutdown() after test flow is scheduled to end.
 
        -O x=OPT
               Set  specific socket options on test socket.  For a list of sup‐
               ported socket options see -s option.
 
        -P x   Do not iterate through select()  to  continue  sending  in  case
               block size did not suffice to fill sending queue (pushy).
 
        -Q     Summarize only, skip interval reports (quiet).
 
        -R x=#.#[z|k|M|G][b|B][p|P]0
               Rate limiting. Send data at specified rate per second, where:
               z = 2**0, k = 2**10, M = 2**20, G = 2**30.
               b  = bits per second (default), y = bytes per second, B = blocks
               per second.
               p = periodic (default), P = Poisson distributed.
 
        -S x=# Set block size (default: s=8192,d=8192).
 
        -T x=#.#
               Set flow duration, in seconds (default: s=5,d=0).
 
        -W x=# Set requested receiver buffer (advertised window) in bytes.
 
        -Y x=#.#
               Set initial delay before the host starts to send data.
 
 

EXAMPLES

        flowgrind -H s=host1,d=host2
               Start bulk TCP transfer with host1 as source and host2 as desti‐
               nation endpoint. Both endpoints need to be running the flowgrind
               daemon. The default flow options are used, with a flow of 5 sec‐
               onds  duration with data sent from the source to the destination
               endpoint.
 
        flowgrind -H s=host1,d=host2 -T s=0,d=10
               Same as the above but instead with a flow sending  data  for  10
               seconds from the destination to the source endpoint.
 
        flowgrind    -n    2    -H   s=192.168.0.1,d=192.168.0.69   -F   1   -H
        s=10.0.0.1,d=10.0.0.2
               Setup   two   flows,   first   flow   between   192.168.0.1  and
               192.168.0.69, second flow between 10.0.0.1 to 10.0.0.2
        #      The endpoint, either S for source or R for destination.
 
        ID     The flow identifier.
 
        begin and end
               The boundaries of the measuring interval in  seconds.  The  time
               shown  is  the  elapsed  time since receiving the RPC message to
               start the test from the daemon
        
flowgrindd(1),
flowgrind-stop(1) June 2009
flowgrind(1)