This is the standard recommendation for 3G throttling:
These exact figures are used as the WebPageTest “Mobile 3G - Fast” preset and Lighthouse’s throttling default.
If you want to use more accurate throttling, read on.
This Performance Calendar article, Testing with Realistic Networking Conditions, has a good explanation of packet-level traffic shaping (which applies across TCP/UDP/ICMP) and recommendations.
comcast for network throttlingThe comcast Go package appears to be the most usable Mac/Linux commandline app for managing your network connection. Important to note: it changes your entire machine’s network interface. Also, comcast requires sudo (as all packet-level shapers do).
Windows? As of today, there is no single cross-platform tool for throttling. But there are two recommended Windows-specific network shaping utilities: WinShaper and Clumsy.
comcast set up# Install with go
go get github.com/tylertreat/comcast
# Ensure your $GOPATH/bin is in your $PATH (https://github.com/golang/go/wiki/GOPATH)
# To use the recommended throttling values:
comcast --latency=150 --target-bw=1600 --dry-run
# To disable throttling
# comcast --stop
Currently, comcast will also throttle the websocket port that Lighthouse uses to connect to Chrome. This isn’t a big problem but mostly means that receiving the trace from the browser takes significantly more time. Also, comcast doesn’t support a separate uplink throughput.
comcast# Enable system traffic throttling
comcast --latency=150 --target-bw=1600
# Run Lighthouse with it's own throttling disabled
lighthouse --disable-network-throttling # ...
# Disable the traffic throttling once you see "Retrieving trace"
comcast --stop