Две программы под одним именем
Запрос «speedtest-cli» приводит к двум разным утилитам, и синтаксис у них отличается. Первая — сторонний скрипт на Python, который ставится командой pip install speedtest-cli или из репозиториев дистрибутива и запускается как speedtest-cli, а часто и как speedtest. Вторая — официальный консольный клиент сервиса Ookla, распространяемый как готовый бинарный файл. Команда там тоже называется speedtest, но ключи другие.
Как понять, какая из них установлена: выполните speedtest --version. Если в выводе упоминается Ookla и указана лицензия, это официальный клиент; если версия выводится коротко, а справка содержит ключи --simple и --csv-header, это скриптовая версия. Если установлены обе и вы не уверены, какая запустилась, укажите имя полностью: speedtest-cli для скрипта.
Оба варианта проверяют скорость до выбранного сервера измерений, а не «скорость интернета вообще». Результат зависит от узла, времени суток, состояния Wi-Fi и загрузки вашего компьютера.
Скриптовая версия: ключи и результат
Простейший запуск: speedtest-cli --simple. Пример вывода (пример): Ping: 12.4 ms, Download: 92.35 Mbit/s, Upload: 41.20 Mbit/s. Без --simple программа покажет ход выбора сервера, а в конце добавит строки с результатом.
| Ключ | Что делает |
|---|
Обратите внимание на единицы. По умолчанию результат в мегабитах в секунду, тогда как большинство программ показывает скорость загрузки файла в мегабайтах. В одном байте восемь бит, поэтому 80 Мбит/с — это около 10 Мбайт/с. Путаница между этими единицами даёт большинство жалоб на «недобор скорости».
Официальный клиент
У официальной программы при первом запуске требуется согласиться с лицензией: speedtest --accept-license --accept-gdpr. Затем достаточно команды speedtest. Она печатает сервер, пинг с разбросом, загрузку и отдачу, а также иногда потери пакетов. Полезные ключи: -L покажет список ближайших серверов, -s номер выберет сервер, -f json или -f csv поменяет формат вывода. Точный список ключей смотрите в справке командой speedtest --help, потому что набор может меняться от версии к версии.
Установка зависит от системы. В Linux и macOS программа обычно ставится из репозитория разработчика или через менеджер пакетов, в Windows скачивается архивом с сайта разработчика и запускается прямо из папки. Так как официальный клиент отправляет результаты сервису, учтите политику сбора данных и лицензию, с которой вы соглашаетесь.
Как получить сопоставимый результат
Одиночное измерение малоинформативно. Чтобы результат имел смысл, придерживайтесь порядка.
- Подключите компьютер к роутеру кабелем и отключите Wi-Fi: так вы проверяете линию провайдера, а не эфир.
- Закройте программы, которые используют сеть: облачную синхронизацию, обновления, видео и потоковые сервисы.
- Выполните --list и выберите близкий сервер, затем всегда используйте один и тот же номер через --server.
- Сделайте три-пять замеров с паузой в минуту и запишите значения.
- Повторите в разное время суток: вечерние часы часто медленнее из-за нагрузки на сеть провайдера.
- Сравните проводной результат с Wi-Fi: разница показывает потери на беспроводном участке.
Слишком частые замеры не нужны и создают лишнюю нагрузку на серверы измерений. Раз в час вполне достаточно для журнала, а для разовой проверки достаточно нескольких запусков.
Журнал замеров: CSV и расписание
Чтобы увидеть картину за сутки, сохраняйте результаты. Один раз выведите заголовок: speedtest-cli --csv-header > speed.csv. Затем добавляйте строки: speedtest-cli --csv >> speed.csv. В файле окажутся время, сервер, пинг, загрузка, отдача и адрес, с которого шёл тест. Файл открывается в любой электронной таблице, где можно построить график.
Запуск по расписанию: в Linux и macOS подойдёт cron, в Windows планировщик заданий или команда schtasks. Пример записи cron (пример): раз в час вызывать скрипт, который дописывает строку в файл. Учтите, что в cron нет вашей обычной среды, поэтому указывайте полный путь к программе, узнать который можно командой which speedtest-cli в Linux и macOS или where speedtest-cli в Windows.
Если нужно передать результат в другую программу, используйте --json: формат удобно разбирать скриптами. Не публикуйте ссылки на результаты и файлы журнала, если в них есть ваш внешний адрес.
Что не покажет консольный тест
Тест измеряет одну линию до одного сервера. Он не скажет, почему конкретный сайт открывается медленно: причина может быть в его собственном сервере, маршруте или DNS. Для проверки одного сайта пригодятся curl с временными метками и mtr. Он также не заменяет проверку внутренней сети: для этого есть iperf3, которому не нужен интернет.
Интерпретируйте результат осторожно. Отклонение в десять-двадцать процентов от заявленного значения на Wi-Fi обычно нормально, а стабильный недобор по кабелю повод обратиться к провайдеру с журналом замеров. Приложите время, номер сервера и значения, тогда обращение будет предметным. Полезно сравнить результат с тем, что заявлено в договоре, но помнить о разнице между «до» и «после» роутера. Если компьютер подключён кабелем прямо к оборудованию провайдера, вы измеряете линию. Если через ваш роутер, в цифру входят и его возможности, а у бюджетных моделей при включённых функциях защиты и фильтрации скорость маршрутизации падает. Проверьте оба варианта, когда это возможно: разница подскажет, где узкое место. Также обратите внимание на защитные и сетевые программы на компьютере: они могут менять маршрут и результат, поэтому на время замера их лучше отключать. Помните и про ограничения оборудования: старый роутер с портами на сто мегабит физически не выдаст больше, как бы ни была быстра линия.