Ограничение скорости загрузки и отдачи
Ограничьте приложение заданным числом килобайт в секунду, и больше оно не получит. Два направления независимы, так что можно дать быструю загрузку и безнадёжную отдачу, а именно так выглядит большинство домашних и мобильных соединений.
В окне
- Укажите в поле Process своё приложение.
- Заполните Download, Upload или оба, в КБ/с. Оставьте поле равным 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 | Скромная домашняя линия. Хватит на один видеопоток. |
| 12800 | 100 Mbit/s | Обычное фиксированное соединение сегодня. |
Килобайты, а не килобиты, поэтому умножайте на восемь, чтобы сравнить с тем, что обещает провайдер. Ограничение обоих направлений сразу делает соединение похожим на плохой хотспот, а не просто на медленную загрузку.
Очередь важна не меньше, чем лимит
Ограничению скорости нужно место, куда класть пакеты, которые пока не помещаются. Это настройка Buffer, в миллисекундах, и она ведёт себя как очередь в кассу:
- Короткая очередь означает, что пакеты выбрасываются, как только линия заполнена. Приложение видит потери и быстро реагирует.
- Длинная очередь означает, что ничего не выбрасывается, но всё ждёт. Приложение видит, что соединение становится всё медленнее, вместо того чтобы дать сбой: так ведёт себя перегруженная домашняя линия, и поэтому видеозвонок ухудшается, пока идёт загрузка.
Профиль «Congested home link (bufferbloat)» делает именно это: лимит с длинной очередью. Попробуйте одну и ту же скорость с короткой и длинной очередью и посмотрите, насколько по-разному ведёт себя приложение.
Чего ожидать
Пока лимит работает, счётчик отброшенных пакетов может оставаться нулевым. Это не ошибка: лимит сначала заставляет пакеты ждать и отбрасывает их, только когда очередь действительно полна. Задайте маленький буфер, и отбрасывание появится.