ダウンロードとアップロードの速度を制限する
1つのアプリケーションを毎秒のキロバイト数で絞ると、それ以上は出なくなります。上りと下りは別々なので、速い下りと絶望的な上りを組み合わせられます。家庭用やモバイルの回線の多くはまさにそういう姿です。
ウィンドウでの手順
- Processにアプリを指定します。
- Download、Upload、またはその両方をKB/sで入力します。フィールドを0のままにすると、その方向には手を加えません。
- STARTを押します。
BeanNetworkTester.exe --down 128 --up 32 --target myapp.exe --duration 120
数値の意味
| KB/s | おおよそ | どんな回線か |
|---|---|---|
| 6 | 56 kbit/s | ダイヤルアップモデム。「56k modem」プロファイルです。 |
| 128 | 1 Mbit/s | 機内Wi-Fi、混雑したホテル、電波の悪いモバイル回線。 |
| 1024 | 8 Mbit/s | 控えめな家庭用回線。動画1本を流すには足ります。 |
| 12800 | 100 Mbit/s | 現在の普通の固定回線。 |
キロビットではなくキロバイトなので、プロバイダーが宣伝している数字と比べるには8倍してください。両方向を同時に絞ると、単に下りが遅いのではなく、悪いホットスポットのような感触になります。
制限と同じくらい、キューが重要
速度制限には、まだ流せないパケットを置いておく場所が必要です。それがBufferの設定で、単位はミリ秒、スーパーのレジの列のように振る舞います:
- 短いキューは、回線がいっぱいになるとすぐパケットが捨てられることを意味します。アプリはパケットロスを見て、素早く反応します。
- 長いキューは、何も捨てられない代わりに、すべてが待たされることを意味します。アプリが見るのは失敗ではなく、接続がどんどん遅くなる様子です。混雑した家庭用回線で起きる現象であり、ダウンロード中にビデオ通話の品質が落ちる理由でもあります。
「Congested home link (bufferbloat)」プロファイルがまさにこれで、長いキューを持つ速度制限です。同じ速度で短いキューと長いキューを試し、アプリの振る舞いがどれほど違うか観察してください。
予想しておくべきこと
制限をかけている間、破棄されたパケットのカウンターが0のままのことがあります。バグではありません。制限はまずパケットを待たせ、キューが本当にいっぱいになったときにだけ破棄します。バッファーを小さくすると、破棄が現れます。