Мелкие файлы ползут через 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 в своих заметках, потому что исправление в одном не является доказательством о другом.