TRICKLE(1)

πŸ“¦
version 1.08 Β· 3 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– TRICKLE(1) πŸ’–

okay bestie so this is the manual page for trickle, from the General Commands Manual section 1, and it's literally the moment your bandwidth gets its life together. sit down, hydrate, let's go 🫢


✨ NAME ✨

trickle β€” a lightweight userspace bandwidth shaper


🌸 SYNOPSIS 🌸

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

πŸ¦‹ DESCRIPTION πŸ¦‹

trickle is a userspace bandwidth manager, no cap. rn it supports shaping any SOCK_STREAM connection (peep socket(2)) that gets established through the socket(2) interface. that's the vibe. πŸ’…

🚨 but listen β€” trickle will NOT work with statically linked executables, and it will NOT work with setuid(2) executables. not a maybe, a hard no. 😭

the way trickle is highly configurable… download and upload rates can be set separately, or in an aggregate fashion. both. either. your call, main character. ✨

The options are as follows:

  • -h β€” Displays help. that's it, that's the tweet πŸ™ˆ
  • -v β€” Increases the verbosity level. you can specify it multiple times, so go off, stack those v's πŸ‘‘
  • -V β€” Prints version.
  • -s β€” Runs trickle in standalone mode, independent of trickled(8). it's giving independent woman energy fr fr
  • -d rate[:schedule] β€” Limit the download bandwidth consumption to rate KB/s. The default value is 10 KB/s. Optionally, set a schedule to follow. πŸ“
  • -u rate[:schedule] β€” Limit the upload bandwidth consumption to rate KB/s. The default value is 10 KB/s. Optionally, set a schedule to follow. πŸ“
  • -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. like, it's fine, don't touch it, it's fine πŸ’…
  • -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. The default value is 3 seconds. ✨
  • -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. yes the default path is literally that, memorize it or don't, it's in the docs 🫢

πŸŽ€ Schedules πŸŽ€

Both the -u and -d flags accept one or more optional schedules, specified in the following form:

:[days_of_week][start_time],[end_time],[rate]

days_of_week may be any of Su M T W Th F Sa in any order. If no day is specified, the schedule will apply for all days. (slay, set it and forget it πŸ’–)

start_time is the 3-or-4-digit 24-hour local time to begin the new bandwidth schedule. For example, 1234 would mean 12:34 PM. 123 would mean 1:23 AM. 2345 would mean 11:45 PM.

end_time is the 3-or-4-digit 24-hour local time to end the bandwidth schedule.

rate is the bandwidth limit (in KB/s) that is enforced during the specified time.

Multiple schedules can be string together on the command line. If the schedules overlap, the last one takes precident. so order matters, bestie, don't be sloppy 😌


🌈 EXAMPLES 🌈

trickle -u 10 -d 20 ncftp

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


trickle -d 50 -u 10:WSaSu130,145,1000:MTTh1200,300,96 rsync ...

Launch rsync(1) limiting the bandwidth as follows:

  • constant 50 KB/s download limit
  • 1000 KB/s upload limit between 1:30 AM and 1:45 AM on Wednesdays, Saturdays, and Sundays
  • 96 KB/s upload limit between 12:00 noon and 3:00 PM on Mondays, Tuesdays, and Thursdays
  • 10 KB/s upload limit otherwise

trickle -s -u 100 -d 10000:900,1700,10" wget ...

Launch wget(1) in standalone mode, limiting the bandwidth as follows:

  • constant 100 KB/s upload limit
  • 10 KB/s download limit between 9:00 AM and 5:00 PM all days of the week
  • 10,000 KB/s download limit otherwise
πŸ’€ note that stray " in the wget example is literally in the original manual page. it's not me, it's canon. i am not fixing it. i am not touching it. it stays. πŸ™ˆ

πŸ‘‘ SEE ALSO πŸ‘‘

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

go read those too, i'm not gonna gatekeep πŸ’œ


🧚 AUTHORS 🧚

trickle has been developed by Marius Aamodt Eriksen ⟨marius@monkey.org⟩. thank you king 🫢


πŸ’€ BUGS πŸ’€

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

yeah. those two. that's the whole list. it's giving "we know, we know" 😭


🌸 and that's the whole page, bestie!! this version is from Debian, dated November 10, 2002 β€” yes it's old, yes it's still serving, no we don't discuss it. now go shape some bandwidth. slay. periodt. πŸ’…βœ¨