trickle is a userspace bandwidth manager. Currently, trickle supports the shaping of any SOCK_STREAM
(see socket(2)) connection established via the socket(2) interface. Furthermore, trickle will not work
with statically linked executables, nor with setuid(2) executables. trickle is highly configurable;
download and upload rates can be set separately, or in an aggregate fashion.
The options are as follows:
-h Displays help.
-v Increases the verbosity level (can be specified multiple times).
-V Prints version.
-s Runs trickle in standalone mode, independent of trickled(8).
-drate Limit the download bandwidth consumption to rate KB/s.
-urate Limit the upload bandwidth consumption to rate KB/s.
-wlength Set peak detection window size to length KB. This determines how aggressive trickle is at
eliminating bandwidth consumption peaks. Lower values will be more aggressive, but may also
result in over shaping. The default value (512 KB) is usually sufficient.
-tseconds Set smoothing time to seconds s. The smoothing time determines with what intervals trickle
will try to let the application transceive data. Smaller values will result in a more
continuous (smooth) session, while larger values may produce bursts in the sending and
receiving data. Smaller values (0.1 - 1 s) are ideal for interactive applications while
slightly larger values (1 - 10 s) are better for applications that need bulk transfer.
-llength Set smoothing length to length KB. The smoothing length is a fallback of the smoothing
time. If trickle cannot meet the requested smoothing time, it will instead fall back on
sending length KB of data. The default value is 10 KB.
-npath Use trickled(8) socket path to communicate with trickled(8). By default,
/tmp/.trickled.sock is used.
-Ppath Use the specified .so instead of the standard one, this is useful if you don't run trickle
from a standard installation.