Throttle

Uses ipfw on Mac OSX to simulate slower connection speed.

Purpose

Many times I've found myself needing to test applications on slower connections. However, that is never an easy task. Throttle allows you to simulate a slower connection by allowing you to specify an exact bandwidth you would like to experience.

Development

At the moment the code is REAAAAAAL ugly and needs much improvement. There are also a lot more features I would like to add. Mostly being able to specify source and destination ip:port so you can filter which traffic will be throttled. Also the ability to have multiple filters going at once. Right now you can only have one.

Usage

Prerequisites

  • Mac OSX 10.5, 10.6, 10.7
  • ruby >= 1.8.7
  • rubygems

Installation

gem install throttle

Getting Started

From the command line:

Start throttling

Limit traffic to 100 Kilobits per second

throttle limit 100Kbps

Current Status

List all current limits in place.

throttle status

Remove all limits

throttle reset

Bandwidth

Bandwidth must be specified in [Kilo/Mega][bits/Bytes]/s.

  • 500Kbps - 500 Kilobytes per second
  • 1MBps - 1 Megabyte per second

IPFW doesn't allow bandwidth greater than 268 MBps.