В течение последнего месяца я испытывал периодический высокий пинг к моему домашнему маршрутизатору со всех компьютеров в моей сети Wi-Fi. Для каждых десяти пингов или около того, пинг поднимется с приемлемого значения 1-3 мс до 800 мс.

Уже есть похожие вопросы о ServerFault и Superuser с некоторыми очень хорошими ответами. В конкретном ответе на Superuser отмечалось, что применение нагрузки в сети (например, запуск µTorrent), по-видимому, устраняет высокий пинг.

Я попробовал это и нашел те же результаты. Вот значения ping из PingPlotter:журнал ping

Обратите внимание, что график становится плоским, как только я включаю µTorrent.

Вместо того, чтобы постоянно использовать µTorrent, я сейчас ищу легковесную программу, которая может нагрузить сеть. Я попытался скомпилировать программу Rust, предоставленную в ответе суперпользователя, но в итоге я получил следующую ошибку:

error: macro undefined: 'log!'
  --> rust.rs:11:7
   |
11 |       log! ("wifi_load] Error fetching {}: {}", url, err);
   |       ^^^

error: aborting due to previous error

Итак, как я могу создать программу, которая будет иметь эффект, похожий на включение µTorrent? Я хотел бы отметить, что я не программист, и мне не обязательно использовать Rust - просто нужно выполнить поставленную задачу.

Спасибо!

1 ответ1

0

Оповещения один раз в секунду по в основном простаивающему Wi-Fi - ужасный способ поиска проблем с задержкой, потому что вы на самом деле не измеряете то, что, по вашему мнению, измеряете. Проблема заключается в том, что клиенты Wi-Fi обычно питаются от батареи и любят экономить электроэнергию с помощью режима энергосбережения 802.11, который отключает радио Wi-Fi на короткие промежутки времени (возможно, на несколько десятых секунды, но это добавляет), когда, кажется, нет никакого трафика для отправки или получения.

Пинг один раз в секунду не достаточен для предотвращения включения режима энергосбережения 802.11, поэтому вы можете увидеть длительное время пинга из-за режима энергосбережения.

Чтобы проверить эту теорию, попробуйте запустить 20 пингов в секунду. Не уверен насчет Windows, но в Linux или macOS это будет так: sudo ping -i 0.05 192.168.0.1 . Это заставляет вас отправлять (и получать) два пинга за интервал радиомаяка 802.11 (который обычно составляет одну десятую секунды), что обычно достаточно для предотвращения включения функции энергосбережения.

Запускать ненужный трафик, чтобы не допустить включения режима энергосбережения, довольно глупо. Это все равно, что сказать: «Эй, мой автомобильный двигатель работает на холостых оборотах, когда меня останавливают на светофоре! Должен ли я держать ногу на газе, чтобы двигатель набирал обороты, пока я на светофоре?«Ответ:« Нет, снижение скорости - это экономия энергии ». Он снова начнет вращаться, когда вам это понадобится!"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .