Капіраванне файла паміж двума машынамі Windows ідзе хутка, пакуль абедзве не далучацца да аднаго і таго ж VPN, і тады яно правальваецца, хоць тэст прапускной здольнасці па той жа пары па-ранейшаму паказвае амаль хуткасць лініі. Гэтая розніца і ёсць дыягназ: злучэнне ў парадку, і нешта выбірае горшы шлях для самога пераносу. Гэтае нешта звычайна шматканальнасць SMB3, якая робіць менавіта тое, для чаго створана. Прыбярыце дадатковы канал, і капіяванне вернецца на фізічнае злучэнне.

Сімптом чакае самага павольнага канала

Шматканальнасць дазваляе аднаму сеансу SMB выкарыстоўваць некалькі злучэнняў TCP, па адным на кожную прыдатную пару адрасоў паміж кліентам і серверам. Калі абедзве машыны знаходзяцца ў лакальнай сетцы і ў адным тунелі, Windows можа спарыць адрасы лакальнай сеткі з адрасамі тунеля і лічыць абедзве пары прыдатнымі. У выніку ў сеансе больш каналаў, чым патрабуе фізічнае злучэнне, і адзін з іх значна павольнейшы.

Гэта не збой. Гэта чаканне, бо сеанс не можа завяршыцца хутчэй за свой самы павольны канал.

Вось чаму тэст прапускной здольнасці можа выглядаць добрым, пакуль капіяванне ледзь поўзе: вымярэнне аднаго патоку можа выбраць адзін шлях, а перанос быў размеркаваны па двух. Прачытайце спіс каналаў перад зменай любога параметра адаптара і чытайце яго, пакуль капіяванне яшчэ ідзе, бо прастойны сеанс нічога не паказвае. Тое, што вы запішаце, павінна называць інтэрфейс за кожным каналам, а не проста тое, наколькі павольны вынік.

Пераканайцеся, што другі канал існуе

Дзве каманды cmdlet адказваюць на пытанне напрамую. Спіс злучэнняў паказвае каналы ў выкарыстанні, а зводка сеансу — само злучэнне. Запусціце абедзве падчас павольнага капіявання.

Get-SmbMultichannelConnection
Get-SmbConnection

Шукайце больш за адзін радок, пазначаны як выбраны для таго ж сервера, затым вызначце адрас кліента ў падазроным радку. Калі гэты адрас належыць адаптару тунеля, другі шлях рэальны і пацверджаны. Калі ўсе радкі належаць фізічнаму інтэрфейсу, шматканальнасць не ваша праблема і капіяванне павольнае з іншай прычыны. Зрабіце гэтае пацверджанне першым, бо выпраўленне досыць разбуральнае, каб заслужыць хвіліну доказаў.

Get-NetIPAddress -IPAddress 10.20.30.44

Адрасы тут — замяшчальнікі. Падстаўце тое, што паказвае ваш уласны вывад, бо капіяванне адраса з блога — гэта спосаб ператварыць працоўную каманду ў заблытанае паведамленне пра памылку.

Прыбярыце тунель з SMB, затым вымерайце зноў

Адключэнне шматканальнасці — самы хуткі спосаб пацвердзіць дыягназ, і ён зваротны. Ужывіце параметр кліента на машыне, якая капіюе, а параметр сервера — на машыне, якая размяшчае агульны рэсурс, бо любы бок асобна можа падтрымліваць дадатковы канал. Змена датычыцца новых злучэнняў, а не існых, таму адкрыты сеанс яе перажыве. Перазагрузіце абедзве машыны або хаця б зачыніце ўсе дэскрыптары да рэсурсу, перш чым нешта вымяраць.

Set-SmbClientConfiguration -EnableMultiChannel $false -Force
Set-SmbServerConfiguration -EnableMultiChannel $false -Force

Пацвердзіце новы стан, затым паглядзіце, што сервер цяпер абвяшчае кліентам.

Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Get-SmbServerNetworkInterface | Format-List *

Інтэрфейс тунеля павінен знікнуть з гэтага абвешчанага спісу. Калі не, параметр патрапіў не на той канец або стары сеанс яшчэ адкрыты. Калі агульны доступ да файлаў проста не павінен выкарыстоўваць тунель, адлучыце кампанент сервера ад гэтага адаптара — тады тунель застанецца прыдатным для ўсіх іншых службаў.

Get-NetAdapterBinding -Name "OpenVPN Data Channel Offload"
Disable-NetAdapterBinding -Name "OpenVPN Data Channel Offload" -ComponentID ms_server

Аддайце перавагу шляху праз лакальную сетку, не выдаючы гэта за выдаленне каналаў

Метрыка інтэрфейсу паведамляе Windows, які шлях аддаць перавагу для новых злучэнняў. Яна не выдаляе канал, які шматканальнасць ужо вырашыла адкрыць. Падвышэнне метрыкі тунеля ўсё яшчэ вартае справы, бо яно трымае старонні трафік далей ад павольнага шляху і робіць прыярытэтны маршрут прадказальным, але гэта штуршок, а не фільтр.

Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric
Set-NetIPInterface -InterfaceAlias "OpenVPN Data Channel Offload" -AutomaticMetric Disabled -InterfaceMetric 1000

Скапіруйце псеўданім з гэтага вываду замест таго, каб уводзіць яго, бо ў некаторых усталяваннях назва адаптара лакалізаваная і англійскі радок не супадзе.

Затым вымерайце абодва лікі зноў: капіяванне файла і тэст прапускной здольнасці па той жа пары. Калі капіяванне аднаўляецца, а тэст прапускной здольнасці ніколі не быў павольным, прычынай была шматканальнасць, і можна спыніцца. Калі абодва правальваюцца, тунель і ёсць вузкае месца і шматканальнасць толькі ўзмацніла яго. Калі капіяванне застаецца павольным, а абодва шляхі выглядаюць правільна, пакінутая праблема жыве ў рэсурсе, сховішчы або драйверы фільтра, і гэта іншае расследаванне.

Падобныя артыкулы