SMB Multichannel през VPN: какво всъщност използва клиентът
Многоканалният SMB през VPN добавя малко канали: прочетете интерфейсите на клиента, избраните връзки и диалекта на SMB, преди да обвините тунела за бавните файлове.
Бавният достъп до файлове през 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 sees | Channels possible |
|---|---|
| One adapter, no RSS | One |
| One adapter with RSS | Several, spread across cores |
| Two or more usable adapters | Several, one path per adapter |
| Several adapters behind one tunnel | Several, one shared bottleneck |
Последният ред е този, който има значение през VPN. Каналите, които всички влизат в един и същ криптиран тунел, споделят пропускателната способност на тунела, процесора на шлюза и WAN връзката. Добавянето на канал там преразпределя работа, без да добавя капацитет, и измерването ще го покаже.
Дръжте подписването и криптирането включени, докато сравнявате, защото изключването им променя това, което измервате. Резултат за производителност, който зависи от изключване на защитна настройка, не е резултат, който можете да внедрите.
Измерете натоварването, което всъщност е бавно
Назовавайте натоварването, преди да промените нещо: едно голямо последователно копиране, много малки файлове в една папка или приложение, което отваря и затваря манипулатори. Многоканалността може да помогне в първия случай, когато има истински независими пътища, и прави много малко в третия, защото там цената са зависими кръгови пътувания, а не честотна лента.
Направете базово измерване с текущата подредба, променете едно нещо и измерете отново със същия набор файлове и по същото време на деня. Запишете броя избрани пътища до числото, за да може по-късен читател да разбере дали промяната е сменила подредбата, или само натоварването.
Ако каналите не са се променили, въпросът за производителността е другаде: разходите за криптиране на тунела, закъснението на пътя или собственият диск и процесор на сървъра. Струва си да ги измерите, преди да добавите още един адаптер към лаптоп, който вече има достатъчно.