Рейтинг:1

Wireguard медленный, но только для загрузки Windows

флаг nl

У нас проблема в том, что подключение из нескольких клиентских сетей через Wireguard Tunnel к общему ресурсу Samba на сервере происходит медленно, но, как ни странно, это влияет только на Windows 10 и только на загрузку.

Хост Linux может загружать со скоростью до 120 МБ/с, в то время как Windows может загружать только со скоростью 10-50 МБ/с (это зависит от разных сетей, которые у нас есть). Это не ограничивается smb, я получаю точно такие же результаты теста с Iperf (udp и tcp).

Из любопытства я проверил, затронута ли Windows 11, и это нет! Что это может быть и как я могу это исправить?

Рейтинг:1
флаг nl

Кажется, это та же или, по крайней мере, похожая проблема, как описано в Dropbox (https://dropbox.tech/infrastructure/boosting-dropbox-upload-скорость). Насколько я понимаю (пожалуйста, поправьте меня!), когда Linux Gateway использует несколько очередей NIC с Wireguard, происходит много переупорядочения пакетов, и, по-видимому, Windows 10 не справляется с этим слишком хорошо. Переупорядочивание пакетов каким-то образом заставляет Windows 10 замедлять скорость отправки, ожидая подтверждения почти после каждого отправленного пакета данных вместо отправки нескольких пакетов и принятия выборочных подтверждений.

К сожалению, я забыл сделать скриншоты анализируемых сеансов Wireshark, но было очень хорошо видно, что при загрузке хост Windows обычно получает около 10-20 пакетов данных tcp перед отправкой подтверждения. Но при загрузке я получил подтверждение TCP для каждого отправленного пакета данных.

Чтобы исправить это, отключите многоочередность на хосте Linux.

ethtool -L PHYSICAL_LOCAL_INTERFACE в сочетании 1
ethtool -L PHYSICAL_NETWORK_INTERFACE в сочетании 1

Чтобы увидеть, было ли оно применено, можно использовать

ethtool -l ИМЯ ИНТЕРФЕЙСА
Параметры канала для INTERFACENAME:
Предустановленные максимумы:
Прием: 0
Техас: 0
Другое: 1
В сумме: 63
Текущие настройки оборудования:
Прием: 0
Техас: 0
Другое: 1
Комбинированный: 1

Последняя строка должна быть 1. Приведенная выше команда устанавливает это только временно, чтобы сделать его постоянным, необходимо использовать специальные инструменты дистрибутива. Для Debian это может быть примерно так:

кот /etc/сеть/интерфейсы
авто ИНТЕРФЕЙС
iface ИНТЕРФЕЙС inet статический
    адрес IPADDR
    маска сети
    шлюз ШЛЮЗ
    # Это соответствующая строка
    post-up ethtool -L ИНТЕРФЕЙС в сочетании 1

Это может создать узкое место, если у шлюза нет мощного процессора. Мы используем 8-ядерные процессоры AMD EPYC 7262 и получаем полную скорость загрузки и загрузки 1 Гбит с использованием ~ 70% одного ядра.

Рейтинг:1
флаг in

Экспериментальный драйвер ядра, добавленный в выпуск 0.4.8, нарушил скорость загрузки Windows. Просто запускайте более старую версию, пока ее не исправят.

https://download.wireguard.com/windows-client/wireguard-amd64-0.4.7.msi

Paul avatar
флаг cn
Добро пожаловать в Server Fault! Ваш ответ предполагает, что работоспособное решение вопроса доступно на другом веб-сайте. Семейство веб-сайтов вопросов и ответов Stack Exchange [обычно не одобряет такой тип ответов] (https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers ). Пожалуйста, прочтите [Как мне написать хороший ответ?](http://serverfault.com/help/how-to-answer) и рассмотрите возможность пересмотра своего ответа, чтобы включить шаги, необходимые для решения проблемы. И не забудьте пройти [тур по сайту](http://serverfault.com/tour).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.