trickle - Man Page

a lightweight userspace bandwidth shaper


trickle[-h] [-v] [-V] [-s] [-d rate] [-u rate] [-w length] [-t time] [-l length] [-n path] command ...


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:


Displays help.


Increases the verbosity level (can be specified multiple times).


Prints version.


Runs trickle in standalone mode, independent of trickled(8).

-d rate

Limit the download bandwidth consumption to rate KB/s.

-u rate

Limit the upload bandwidth consumption to rate KB/s.

-w length

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.

-t seconds

Set smoothing time to seconds s. The smoothing time determines with what intervals trickle will try to let the application transcieve 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.

-l length

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.

-n path

Use trickled(8) socket path to communicate with trickled(8). By default, /tmp/.trickled.sock is used.


trickle -u 10 -d 20 ncftp

Launch ncftp(1) limiting its upload capacity to 10 KB/s, and download capacity at 20 KB/s.

See Also

trickled(8), syslog(3), socket(2), netintro(4)


trickle has been developed by Marius Aamodt Eriksen ⟨⟩.


Does not support executables utilizing kqueue(2). Does not support statically linked executables.

Referenced By

safekeep.conf(5), trickled(8), trickled.conf(5).

November 10, 2002