Медленный доступ к файлам через VPN подталкивает считать многоканальную настройку решением, а настройке часто не с чем работать. Один виртуальный адаптер без RSS не может распределить трафик по нескольким каналам, как бы ни гласил флажок. Важна возможность, которую SMB видит на обоих концах, а не спецификация физической сетевой карты ноутбука. Разбор ниже начинается с активного сеанса и возвращается к раскладке адаптеров.

Начинайте с сеанса, а не со спецификации сетевой карты

Сначала убедитесь, что сеанс вообще может использовать многоканальность. Функция относится к SMB3, поэтому более старый диалект, согласованный с устройством или старым сервером, исключает её ещё до того, как любой вопрос об адаптере станет важным. Затем убедитесь, к какому серверу клиент действительно подключился, потому что имя, разрешающееся в другой узел, нежели проверяемый, даёт убедительный, но не относящийся к делу результат.

Get-SmbConnection
Get-SmbClientConfiguration | Select-Object EnableMultichannel
Get-SmbClientNetworkInterface

Первая команда называет диалект, сервер и общий ресурс в одной строке. Вторая показывает, включена ли функция на клиенте, а третья перечисляет интерфейсы, известные SMB, с их заявленными возможностями. Виртуальный адаптер, который не сообщает ни о RSS, ни о RDMA, говорит вам, чем может стать раскладка.

Если диалект не SMB3, остановитесь и сначала решите этот вопрос. Иначе каждая последующая команда будет описывать функцию, которая не может включиться.

Читайте интерфейсы клиента честно

SMB не важно, какой адаптер несёт маршрут по умолчанию; он перечисляет интерфейсы, которые может использовать, и оценивает каждый. Ноутбук с Wi-Fi, Ethernet и VPN-адаптером может представить три интерфейса, и только один из них может быть доступен серверу, с которым вы говорите. Остальные — кандидаты, а не каналы.

Читайте столбцы RSS и RDMA, а не столбец скорости канала. Виртуальный адаптер обычно сообщает высокую номинальную скорость без поддержки RSS, а номинальная скорость описывает виртуальное соединение, а не путь через интернет. Ни одно из этих чисел не говорит, сколько каналов использует сеанс.

Если адаптер не показывает возможность RSS, поддерживаемое исправление относится к драйверу поставщика VPN, а не к дополнительным свойствам физической сетевой карты. Установка флажка RSS на аппаратном адаптере ничего не меняет в том, что виртуальный адаптер показывает SMB.

Отделите выбранные каналы от обнаруженных кандидатов

Список подключений — часть, которую чаще всего читают неправильно. Если включить невыбранных кандидатов, вывод показывает всё, что рассмотрел SMB, а это не набор каналов, передающих данные. Читайте флаг выбора и число каналов для конкретной пары интерфейсов клиента и сервера, которая вас интересует.

Get-SmbMultichannelConnection -ServerName files.lab.example -IncludeNotSelected
Get-SmbMultichannelConnection -ServerName files.lab.example | Format-List *

Подставьте имя своего сервера. Вторая форма печатает свойства выбранных подключений, включая индексы интерфейсов и текущее число каналов, и именно это число важно. Несколько обнаруженных адресов на одном адаптере — всё ещё один адаптер.

Обнаруженный адрес может быть непригоден и из-за политики VPN: это может быть адрес локальной подсети, который туннель не переносит, или адрес, который сервер обслуживает только в другой сети. SMB перечисляет его как кандидата потому, что интерфейс существует, а не потому, что путь работает.

Что VPN-адаптер делает с раскладкой

Три раскладки стоит различать, потому что только две из них могут дать больше одного канала. Один адаптер без RSS даёт один канал. Один адаптер с поддержкой RSS может распределить подключения по ядрам. Несколько пригодных адаптеров могут дать несколько каналов даже без RSS, и именно эту конфигурацию люди забывают, когда считают RSS обязательным.

Layout SMB seesChannels possible
One adapter, no RSSOne
One adapter with RSSSeveral, spread across cores
Two or more usable adaptersSeveral, one path per adapter
Several adapters behind one tunnelSeveral, one shared bottleneck

Последняя строка — та, что важна через VPN. Каналы, которые все входят в один и тот же зашифрованный туннель, делят пропускную способность туннеля, процессор шлюза и канал WAN. Добавление канала там перераспределяет работу, не добавляя ёмкости, и измерение это покажет.

Оставляйте подпись и шифрование включёнными, пока сравниваете, потому что их отключение меняет то, что вы измеряете. Результат производительности, зависящий от отключения параметра безопасности, — не тот результат, который можно внедрить.

Измеряйте ту нагрузку, которая действительно медленная

Назовите нагрузку, прежде чем что-то менять: одна большая последовательная копия, множество мелких файлов в одном каталоге или приложение, открывающее и закрывающее дескрипторы. Многоканальность может помочь первому случаю, когда есть настоящие независимые пути, и делает очень мало для третьего, потому что там затраты — это зависимые круговые обмены, а не пропускная способность.

Снимите базовый замер с текущей раскладкой, измените одну вещь и снимите снова с тем же набором файлов и в то же время суток. Запишите число выбранных путей рядом со значением, чтобы позднейший читатель мог понять, изменило ли изменение раскладку или только нагрузку.

Если каналы не изменились, вопрос производительности в другом месте: затраты на шифрование туннеля, задержка пути или собственные диск и процессор сервера. Их стоит измерить, прежде чем добавлять ещё один адаптер ноутбуку, у которого их уже достаточно.

Похожие статьи