Малките файлове пълзят през VPN заради обменните цикли, не заради скоростта
Папка с малки файлове плаща разходи за метаданни и обменни цикли, които големият файл прикрива. Измерете формата на натоварването, преди да обвинявате пропускателната способност на тунела.
Копирайте един файл от 2 GB през VPN и трансферът изглежда наред. Копирайте папка с десет хиляди малки документа и същата връзка изглежда счупена. Разликата не е настройка на пропускателната способност, която се е променила между двете задачи. Втората задача прекарва времето си в настройка, метаданни и чакане на отговори, а латентността на тунела прави това чакане видимо.
Един файл се предава на поток; папка с файлове преговаря
Голямото копиране прекарва по-голямата част от живота си в цикъл за четене и запис върху малък брой отворени манипулатори. Разходите за протокола се плащат веднъж на файл, а данните се движат на големи блокове. Пропускателната способност доминира резултата.
Копирането на папка плаща за всеки файл: създаване, заявка за атрибути, отваряне, запис, затваряне и актуализиране на метаданните на директорията. Всяко от тях е заявка, която чака отговор, преди следващата стъпка да продължи. Байтовете са малки; координацията не е.
Ето защо графика с ниско използване на връзката не доказва почти нищо. Връзката е бездейна, защото клиентът чака, а не защото тунелът е бавен. Дисков масив или скенер на крайни точки може да добави същата форма на забавяне. Определете кой етап чака, преди да променяте каквато и да е мрежова настройка.
Обменните цикли се натрупват по-бързо от байтовете
Латентността е цената на един зависим обмен. Ако един файл изисква няколко последователни обмена и тунелът добавя 40 ms във всяка посока, цената на файл расте бързо. Десет хиляди файла превръщат това в минути.
Аритметиката е илюстративна, не е бенчмарк: не е гарантирано, че файлът струва един обменен цикъл, и клиентите припокриват част от работата.
Два лоста променят общата сума. Намалете броя на зависимите обмени на файл или задръжте повече от тях едновременно в ход. Първото е промяна на протокола или натоварването; второто е паралелност. Нито едно от двете не прави бавната връзка по-бърза.
Измерете натоварването, не връзката
Сравнете три задачи с еднакви крайни точки и политика за достъп: един голям файл, папката с малки файлове и действителната бизнес операция. Записвайте броя файлове, разпределението на размерите, инструмента за копиране и мрежовите условия с всеки резултат.
Едно число в MB/s без тези подробности не може да се сравни с ничие друго.
Измерете латентността отделно от пропускателната способност. Прост тест за обменен цикъл до файловия сървър дава числото, което се умножава по дребните операции. След това наблюдавайте модела на заявките на копирането, а не средната му скорост. Ако скоростта е ниска и връзката е бездейна, тясното място е над тунела.
Променете задачата: паралелност и архиви
За разрешено групово копиране инструмент с контролирана паралелност държи повече заявки в ход. Опцията /MT на Robocopy е обичайният пример за Windows. Добавянето на нишки не гарантира по-бързо копиране.
Изберете брой, който клиентът, сървърът и хранилището могат да издържат, и пазете журнала на задачата и всички грешки.
Архивирането при източника и разопаковането локално премахват отдалечената работа по всеки файл. Включете времето за подготовка и извличане в сравнението и потвърдете, че архивът запазва метаданните и разрешенията, от които задачата се нуждае. Нито един от триковете не кара приложението да групира собствените си файлови операции.
Проверете брояча с контролиран тест
Пуснете същата задача два пъти с една променена променлива и запишете двете числа. Контролираният тест е единственият начин да разберете дали настройка е помогнала, или мрежата случайно е била по-тиха.
Две команди дават броя файлове и базовата линия за обменния цикъл:
Get-ChildItem \\fileserver.hq.example\\share -Recurse | Measure-Object -Property Length -Sum
ping -n 20 fileserver.hq.example
След това пуснете копирането с ограничен брой нишки и сравнете журнала с предишното изпълнение:
robocopy \\fileserver.hq.example\\share C:\\local /E /MT:16 /LOG:copy.log /TEE
Не изключвайте подписването на SMB, криптирането или защитата на крайните точки, за да подобрите брояча. Тези промени разменят свойство за сигурност срещу число, което може да не е било тясното място. И дръжте транспорта на VPN отделно от собствения транспорт на SMB в бележките си, защото поправка в едното не е доказателство за другото.