Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
nbdkit-rate-filter(1)		    NBDKIT		 nbdkit-rate-filter(1)

NAME
       nbdkit-rate-filter - limit bandwidth by connection or server

SYNOPSIS
	nbdkit --filter=rate PLUGIN [PLUGIN-ARGS...]
			     [rate=BITSPERSEC]
			     [connection-rate=BITSPERSEC]
			     [rate-file=FILENAME]
			     [connection-rate-file=FILENAME]

DESCRIPTION
       "nbdkit-rate-filter" is a filter	that limits the	bandwidth that can be
       used by the server.  Limits can be applied per connection and/or	for
       the server as a whole.

EXAMPLES
       nbdkit --filter=rate memory 64M rate=1M
	   Create a 64M	RAM disk and limit server bandwidth as a whole to a
	   maximum of 1A Mbps (megabit per second).

       nbdkit --filter=rate memory 64M connection-rate=50K
	   Limit each connection to 50A	Kbps (kilobits per second).  However
	   as there is no limit	to the number of simultaneous connections this
	   does	not limit overall server bandwidth.

       nbdkit --filter=rate memory 64M connection-rate=50K rate=1M
	   Limit each connection to 50A	Kbps.  Additionally the	total
	   bandwidth across all	connections to the server is limited to
	   1A Mbps.

       nbdkit --filter=rate memory 64M rate=1M rate-file=/tmp/rate
	   Initially limit bandwidth to	1A Mbps.  While	the server is running
	   the rate can	be adjusted dynamically	by writing a different rate
	   into	/tmp/rate.

PARAMETERS
       connection-rate=BITSPERSEC
	   Limit each connection to "BITSPERSEC".

       rate=BITSPERSEC
	   Limit total bandwidth across	all connections	to "BITSPERSEC".

       connection-rate-file=FILENAME
       rate-file=FILENAME
	   Adjust the per-connection or	total bandwidth	dynamically by writing
	   "BITSPERSEC"	into "FILENAME".  See "DYNAMIC ADJUSTMENT" below.

       "BITSPERSEC" can	be specified as	a simple number, or you	can use	a
       number followed by "K", "M" etc to mean kilobits, megabits and so on.

DYNAMIC	ADJUSTMENT
       Using the "connection-rate-file"	or "rate-file" parameters you can
       dynamically adjust the bandwidth	while the server is running.

       If the file is not present when the server starts up then the initial
       rate is taken from the associated "connection-rate" or "rate" parameter
       (or if that is not present, then	it is unlimited).  If the file is
       deleted while the server	is running then	the last rate read from	the
       file continues to be used.

       The file	should be updated atomically (eg. create a new file, then
       rename or mv(1) the new file over the old file).

       There will be a short delay between the file being updated and the new
       rate coming into	effect.

NOTES
       You can specify "rate" and "connection-rate" on their own or together.
       If you specify neither, the filter is turned off.

       The rate	filter approximates the	bandwidth used by the NBD protocol on
       the wire.  Some operations such as zeroing and trimming are effectively
       free (because only a tiny NBD message is	sent over the network) and so
       do not count against the	bandwidth limit.  NBD and TCP protocol
       overhead	is not included, so you	may find that other tools such as
       tc(8) and iptables(8) give more accurate	results.

       There are separate bandwidth limits for read and	write (ie. download
       and upload to the server).

       If the size of requests made by your client is much larger than the
       rate limit then you can see long, lumpy sleeps in this filter.  In the
       future we may modify the	filter to break	up large requests
       automatically in	order to limit the length of sleeps.  Placing the
       nbdkit-blocksize-filter(1) in front of this filter may help in the
       meantime.

FILES
       $filterdir/nbdkit-rate-filter.so
	   The filter.

	   Use "nbdkit --dump-config" to find the location of $filterdir.

VERSION
       "nbdkit-rate-filter" first appeared in nbdkit 1.12.

SEE ALSO
       nbdkit(1), nbdkit-blocksize-filter(1), nbdkit-delay-filter(1),
       nbdkit-exitlast-filter(1), nbdkit-limit-filter(1), nbdkit-filter(3),
       iptables(8), tc(8).

AUTHORS
       Richard W.M. Jones

COPYRIGHT
       Copyright (C) 2019 Red Hat Inc.

LICENSE
       Redistribution and use in source	and binary forms, with or without
       modification, are permitted provided that the following conditions are
       met:

       o   Redistributions of source code must retain the above	copyright
	   notice, this	list of	conditions and the following disclaimer.

       o   Redistributions in binary form must reproduce the above copyright
	   notice, this	list of	conditions and the following disclaimer	in the
	   documentation and/or	other materials	provided with the
	   distribution.

       o   Neither the name of Red Hat nor the names of	its contributors may
	   be used to endorse or promote products derived from this software
	   without specific prior written permission.

       THIS SOFTWARE IS	PROVIDED BY RED	HAT AND	CONTRIBUTORS ''AS IS'' AND ANY
       EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
       IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
       PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE
       LIABLE FOR ANY DIRECT, INDIRECT,	INCIDENTAL, SPECIAL, EXEMPLARY,	OR
       CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
       SUBSTITUTE GOODS	OR SERVICES; LOSS OF USE, DATA,	OR PROFITS; OR
       BUSINESS	INTERRUPTION) HOWEVER CAUSED AND ON ANY	THEORY OF LIABILITY,
       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
       OTHERWISE) ARISING IN ANY WAY OUT OF THE	USE OF THIS SOFTWARE, EVEN IF
       ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

nbdkit-1.20.4			  2020-08-28		 nbdkit-rate-filter(1)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | PARAMETERS | DYNAMIC ADJUSTMENT | NOTES | FILES | VERSION | SEE ALSO | AUTHORS | COPYRIGHT | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=nbdkit-rate-filter&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help